Activity
userInterface package
BattleshipUI.java
Add an import for
1. core.BattleshipClient
2. core.Ship
Create an ActionListener for the Deploy Ships button that does the following:
1. Disables the UI components on the JPanel with ship selection options
2. Add a JPanel to the right of Player One’s button board with a JTextArea for displaying the game status to the user
3. Add a JPanel to the right of the game status with Player Two’s button board
4. Call the play() method in class BattleshipClient
In the ActionListener for the Game Menu set the player mode based on what the user selected, the options are:
Player versus Player
Player versus Computer
Computer versus Computer
Example code:
if(e.getActionCommand().equals(“Player vs. Player”))
{ players[Constants.PLAYER_ONE].setPlayMode(Constants.HUMAN); players[Constants.PLAYER_TWO].setPlayMode(Constants.HUMAN);
}
Player.java
Add a class member to store the player’s mode, human or computer; create getter/setter for the class member
Create a method that will automatically layout the ships for when the player mode is set to computer using the Random class to randomly select the direction and location for the startRowClick and startColumnClick; make sure the auto layout uses null for the color
PlayerOptionDialog.java
Update the UI so that it reflects the saved data for each Player
core package
BattleshipClient.java
This class controls the game being played
Create a custom constructor that takes two parameters, an Array of class Player and class BattleshipUI
Create a method play() to manage the play between Player One and Player Two; for this iteration only Human versus Computer has to function
When a JButton has been selected/clicked:
1. if it is a hit
a. change the background color to something other than the default gray(i.e. null) and the ship color (e.g.Color.BLACK)
b. update the object instance so that the number of hits is increased or the hits left is decreased
2. if it is a miss
a. change the background color to something other than the default gray (i.e. null), the ship color, or the color used for a hit
When a ship has 0 (zero) hits left or has taken the max number of hits update the ship so that isSunk = true; notify the user when each of their ships has been sunk
Whichever player sinks all five opponent’s ships first wins the game!
functionality
Compiles
Source compiles with no errors
Runs
Source runs with no errors
Comments
Source includes comments
Total