Battleship Java Program
University of Central Florida
- COP 3330 Object Oriented Programming
- Spring 2017
Assignment 3
Due, Wednesday, April 12, 2017 for 100% credit
Thursday, April 13, 2017 for 90% credit
Friday, April 14, 2017 for 80% credit
Saturday, April 15, 2017 for 70% credit
Deliverables
To complete this assignment you must submit your compressed Netbeans project to Webcourses. This requires you to submit a .zip, .rar, .tar, .tgz. etc… of the ENTIRE project. Individual source code files will not be accepted.
Introduction
This assignment is to develop a User Interface using classes from the javax.swing package.
Tasks and Rubric
Activity | |
userInterface package | |
BattleshipUI.java | Add an import for
|
Create an ActionListener for the Deploy Ships button that does the following:
| |
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:
| |
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 |
Figures
Figure 1 Initial display
Figure 2 Deployed Ships
Figure 3 Display Game Status and Player Two Panels
Figure 4 Play Between Human and Computer
Figure 5 End of Game
Figure 6 Player Options Dialog Before Player Selection
Figure 7 Player Options Dialog After Player Selection