Declare a two-dimensional char array that is 25 by 25 that represents the entire ocean and an If statement that prints “HIT” if a torpedo hits a ship given the coordinates X and Y. Write a C++ program that will read in a file representing a game board with 25 lines where each line has 25 characters corresponding to the description above. An example file might look like:    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~#####~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~#~~~~~~~~~~    ~~~~~~~~~~~~~~#~~~~~~~~~~    ~~~~~~~~~~~~~~#~~~~~~~~~~    ~~~~~~~~~~~~~~#~~~~~~~~~~    ~~~~~~~~~~~~~~#~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~#####~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~######~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~#####~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~#~~~~~    ~~~~~~~~~~~~~~~~~~~#~~~~~    ~~~~~~~~~~~~~~~~~~~#~~~~~    ~~~~~~~~~~~~~~~~~~~#~~~~~    ~~~######~~~~~~~~~~#~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~    It wont appear.   Code is below: /*Imagine we are using a two-dimensional array as the basis for creating the game battle- ship. In the game of battleship a ‘~’ character entry in the array represents ocean (i.e., not a ship), a ‘#’ character represents a place in the ocean where part of a ship is present, and a ‘H’ character represents a place in the ocean where part of a ship is present and has been hit by a torpedo. Thus, a ship with all ‘H’ characters means the ship has been sunk. Declare a two-dimensional char array that is 25 by 25 that represents the entire ocean and an If statement that prints “HIT” if a torpedo hits a ship given the coordinates X and Y. Write a C++ program that will read in a file representing a game board with 25 lines where each line has 25 characters corresponding to the description above. You should write a function called Fire that will take an X and Y coordinate and print “HIT” if a ship is hit and “MISS” if a ship is missed. If a ship is HIT you should update the array with an ‘H’ character to indicate the ship was hit. If a ship is hit that has already been hit at that location you should print “HIT AGAIN”. You should write a second function called FleetSunk that will determine if all the ships have been sunk. Your C++ program must then call these functions until all the ships have been sunk at which point the program should display “The fleet was destroyed!”. Your game loop logic (the main logic of a game) should like like the following: do {Fire(x, y, gameBoard);} while(!FleetSunk(gameBoard));*/ #include <iostream>#include <fstream>#include <string.h>#include <windows.h> using namespace std; //function prototypesvoid Fire(char board[][25]);void FleetSunk(char board[][25], int&); int main(){//In cout statement below substitute your name and lab numbercout << "Jaime Ross -- Lab 8" << endl << endl;//Variable declarationschar board[25][25];ifstream infile;infile.open("board.dat");//Program logicif (!infile){cout << "Cannot open file." << endl;}for (int i = 0; i < 25; i++){for (int j = 0; j < 25; j++){char bs;infile >> bs;board[i][j] = bs;}}int fs = 0;do{Fire(board);FleetSunk(board, fs);} while (fs == 0);system("pause");return 0;}void Fire(char board[25][25]){int row = 0, row1 = 0;int col = 0, col1 = 0; cout << "\nEnter row and column you want to hit: ";cin >> row1;cin >> col1;row = row1 - 1;col = col1 - 1;switch (board[row][col]){case '#':if (board[row - 1][col] == 'H'){cout << "HIT AGAIN" << endl;board[row][col] = 'H';}else if (board[row + 1][col] == 'H'){cout << "HIT AGAIN" << endl;board[row][col] = 'H';}else if (board[row][col - 1] == 'H'){cout << "HIT AGAIN" << endl;board[row][col] = 'H';}else if (board[row][col + 1] == 'H'){cout << "HIT AGAIN" << endl;board[row][col] = 'H';}else{cout << "HIT" << endl;board[row][col] = 'H';}break; case '~':cout << "MISS" << endl;break; case 'H':cout << "You already destroyed this ship! :" << endl;break;}}void FleetSunk(char board[25][25], int& fs){//checking if all ships have sunkfor (int i = 0; i < 25; i++){for (int j = 0; j < 25; j++){if (board[i][j] == '#'){fs = 0;return;}}}cout << "The last fleet has been destoryed." << endl;fs = 1;}

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Declare a two-dimensional char array that is 25 by 25 that represents the entire ocean and an If statement that prints “HIT” if a torpedo hits a ship given the coordinates X and Y. Write a C++ program that will read in a file representing a game board with 25 lines where each line has 25 characters corresponding to the description above. An example file might look like:

    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~#####~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~#~~~~~~~~~~
    ~~~~~~~~~~~~~~#~~~~~~~~~~
    ~~~~~~~~~~~~~~#~~~~~~~~~~
    ~~~~~~~~~~~~~~#~~~~~~~~~~
    ~~~~~~~~~~~~~~#~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~#####~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~######~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~#####~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~#~~~~~
    ~~~~~~~~~~~~~~~~~~~#~~~~~
    ~~~~~~~~~~~~~~~~~~~#~~~~~
    ~~~~~~~~~~~~~~~~~~~#~~~~~
    ~~~######~~~~~~~~~~#~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~   

It wont appear.

 

Code is below:

/*
Imagine we are using a two-dimensional array as the basis for creating the game battle- ship. In the game of battleship a ‘~’ character entry in the array represents ocean (i.e., not a ship), a ‘#’ character represents a place in the ocean where part of a ship is present, and a ‘H’ character represents a place in the ocean where part of a ship is present and has been hit by a torpedo. Thus, a ship with all ‘H’ characters means the ship has been sunk. Declare a two-dimensional char array that is 25 by 25 that represents the entire ocean and an If statement that prints “HIT” if a torpedo hits a ship given the coordinates X and Y. Write a C++ program that will read in a file representing a game board with 25 lines where each line has 25 characters corresponding to the description above.

You should write a function called Fire that will take an X and Y coordinate and print “HIT” if a ship is hit and “MISS” if a ship is missed. If a ship is HIT you should update the array with an ‘H’ character to indicate the ship was hit. If a ship is hit that has already been hit at that location you should print “HIT AGAIN”. You should write a second function called FleetSunk that will determine if all the ships have been sunk. Your C++ program must then call these functions until all the ships have been sunk at which point the program should display “The fleet was destroyed!”.

Your game loop logic (the main logic of a game) should like like the following:

do {
Fire(x, y, gameBoard);
} while(!FleetSunk(gameBoard));
*/

#include <iostream>
#include <fstream>
#include <string.h>
#include <windows.h>

using namespace std;

//function prototypes
void Fire(char board[][25]);
void FleetSunk(char board[][25], int&);

int main()
{
//In cout statement below substitute your name and lab number
cout << "Jaime Ross -- Lab 8" << endl << endl;
//Variable declarations
char board[25][25];
ifstream infile;
infile.open("board.dat");
//Program logic
if (!infile)
{
cout << "Cannot open file." << endl;
}
for (int i = 0; i < 25; i++)
{
for (int j = 0; j < 25; j++)
{
char bs;
infile >> bs;
board[i][j] = bs;
}
}
int fs = 0;
do
{
Fire(board);
FleetSunk(board, fs);
} while (fs == 0);
system("pause");
return 0;
}
void Fire(char board[25][25])
{
int row = 0, row1 = 0;
int col = 0, col1 = 0;

cout << "\nEnter row and column you want to hit: ";
cin >> row1;
cin >> col1;
row = row1 - 1;
col = col1 - 1;
switch (board[row][col])
{
case '#':
if (board[row - 1][col] == 'H')
{
cout << "HIT AGAIN" << endl;
board[row][col] = 'H';
}
else if (board[row + 1][col] == 'H')
{
cout << "HIT AGAIN" << endl;
board[row][col] = 'H';
}
else if (board[row][col - 1] == 'H')
{
cout << "HIT AGAIN" << endl;
board[row][col] = 'H';
}
else if (board[row][col + 1] == 'H')
{
cout << "HIT AGAIN" << endl;
board[row][col] = 'H';
}
else
{
cout << "HIT" << endl;
board[row][col] = 'H';
}
break;

case '~':
cout << "MISS" << endl;
break;

case 'H':
cout << "You already destroyed this ship! :" << endl;
break;
}
}
void FleetSunk(char board[25][25], int& fs)
{
//checking if all ships have sunk
for (int i = 0; i < 25; i++)
{
for (int j = 0; j < 25; j++)
{
if (board[i][j] == '#')
{
fs = 0;
return;
}
}
}
cout << "The last fleet has been destoryed." << endl;
fs = 1;
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 3 images

Blurred answer
Knowledge Booster
Program on Numbers
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education