Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Solution Description Your program must be named Battleship.java. Please read all the steps and look at the Example Output carefully before you begin. It must
Solution Description
Your program must be named Battleship.java. Please read all the steps and look at the Example Output carefully before you begin. It must work as follows:
Print out the message Welcome to Battleship!
Prompt each user to enter coordinates for five ships of length one. There must be five separate prompts for each ship use the example below as a guide You can expect the user input will be two ints separated by a space. The first int represents the row number and the second int represents the column number.
If the user enters invalid integers, print
Invalid coordinates. Choose different coordinates.
If the user enters a coordinate that they had already entered, print
You already have a ship there. Choose different coordinates.
After each player enters their fifth coordinate, a board representing the player's ship locations must be printed to the console using the provided method. See step three on how to construct these Locations Boards.
new lines must follow the printed board so that the other player will not see the entered coordinates and board of their opponent.
Create two x grids in the form of D arrays using the coordinates entered by the players. These Location Boards store each player's ship locations and will be used to keep track of the damage states of each player's ships, as well as any misses. The corresponding Location Board must be printed to the console right after a player enters the coordinates of their ships.
A character must represent an empty space.
An @ character must represent a ship that is not hit. When the game begins, all ships will start fresh with no hits.
An X character will represent a space with a ship that has been hit.
An O character will represent a space that was fired upon, but since there is not ship at that location, the shot was a miss.
Each player's board must have five ships of length one. Five of the grid spaces will start with ships on them.
Additionally, you must generate two more x grids in the form of D arrays. These Target History Boards will allow each player to visually track their hits and misses. After each hit or miss by the player, their Target History Board must be printed to the console using the provided method.
On this board, an X character must represent a hit by the player, an O character must represent a miss by the player, and a character must represent a space that has not been attacked.
Prompt Player to enter a coordinate to fire upon. You can expect the user input will be two ints separated by a space.
If the user enters invalid integers, print
Invalid coordinates. Choose different coordinates.
If the user enters a coordinate that they had already entered, print out the following
You already fired on this spot. Choose different coordinates.
If the user enters a coordinate with no ship on it print out the following and print the updated Target History Board, where NUM is replaced with the attacked player's ID
PLAYER NUM MISSED!
If the user enters a coordinate with a ship on it print out the following and print the updated Target History Board, where NUM A is replaced with the attacking player's ID and NUM B is replaced with the attacked player's ID
PLAYER NUM A HIT PLAYER NUM Bs SHIP!
Player will get a turn after each turn that Player takes, which will function in the same way as Player s turns.
When a ship is hit by a player, the Location board which tracks the damage states of the corresponding player's ships must be updated. Misses should be updated on the Location board as well.
The program must terminate gracefully after a player wins. This will occur when all of the @ signs on their opponent's board have been replaced with X symbols.
Immediately following the move which sinks the final ship location, print the following message, where NUM is replaced by the winning player's ID:
PLAYER NUM WINS! YOU SUNK ALL OF YOUR OPPONENT'S SHIPS!
Using the provided method, print both players' Location Boards in order to verify the results of the game to the players. Player s Location Board should be printed first.
In your solution, you must use each of the following Java features at least once:
A for loop
A dowhile loop.
Note: A premade Battleship.java file will be provided for this HW Your code MUST be written in this file. The file simply includes a method, printBattleShip that MUST be used for printing D arrays to the console. Make sure not to alter the printBattleShip method.
HINT:The method is used by passing in the D array you wish to print. For example:
printBattleShipplayerOneShotsBoard;
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started