Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Imagine we are using a two-dimensional array as the basis for creating the game

ID: 3666607 • Letter: I

Question

Imagine we are using a two-dimensional array as the basis for creating the game battleship. 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 an '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 array that is 25 times 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: 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!".

Explanation / Answer

Board.txt

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

Battleship.cpp

#include <cstdlib>

#include <iostream>
#include <cmath>
#include <string>
#include <iomanip>
#include <fstream>

using namespace std;

ifstream myinfile;

const int gameBoardWidth = 25;
const int gameBoardHeight = 25;

void Fire(const int gameBoardWidth, const int gameBoardHeight, int X, int Y, char gameBoard[][25]);
void FleetSunk(const int gameBoardWidth, const int gameBoardHeight, int X, int Y, char gameBoard[][25], bool &GameOver);

int main()
{
   cout << "Titus Dyck -- Lab 9 (BattleShip)" << endl << endl;
myinfile.open("Board.txt"); // Enter your own game board file name here

   // variables
   char gameBoard[gameBoardWidth][gameBoardHeight];
   int X;
   int Y;
   bool GameOver;

   for (int i = 0; i < 25; i++)
   {
       for (int j = 0; j < 25; j++)
           myinfile >> gameBoard[i][j];
   }

   for (int i = 0; i < 25; i++)
   {
       for (int j = 0; j < 25; j++)
           myinfile >> gameBoard[i][j];
          
   }

   GameOver = false;
   while (!GameOver)
   {
       cout << endl << "Please enter a X cordinate from 0 to 24 for your Attack" << endl << endl;
       cin >> X;
       cout << endl;
       cout << "Please enter a Y cordinate from 0 to 24 for your Attack" << endl << endl;
       cin >> Y;
       cout << endl;

       Fire(gameBoardHeight, gameBoardWidth, X, Y,gameBoard);
       FleetSunk(gameBoardHeight, gameBoardWidth, X, Y,gameBoard, GameOver);
      
   }

  


   //closing program statements
   myinfile.close();
   system("pause");
   return 0;
}

// function declarations
void Fire(const int gameBoardWidth, const int gameBoardHeight, int X, int Y, char gameBoard[][25])
{
   if (gameBoard[X][Y] == '#')
   {
       cout << "HIT" << endl;
       gameBoard[X][Y] = 'H';
      
   }

   else if (gameBoard[X][Y] == 'H')
   {
       cout << "HIT AGAIN" << endl;
   }

   else
   {
       cout << "MISS" << endl;
   }

}

void FleetSunk(const int gameBoardWidth, const int gameBoardHeight, int X, int Y, char gameBoard[][25], bool &GameOver)
{
   bool NoPound;
   NoPound = false;

   for (int i = 0; i < 25; i++)
   {
       for (int j = 0; j < 25; j++)
          
           if (gameBoard[i][j] == '~' || gameBoard[i][j] == 'H')
               NoPound = true;

           else
           {
               NoPound = false;
               break;
           }
           if (NoPound == false)
           break;
   }


  

   if (NoPound == true)
   {
       GameOver = true;
       cout << "The Entire Enemey Fleet has been destroyed, well done Admiral!" << endl << endl;
       cout << " Game Over" << endl << endl;
      
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote