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

#include <iostream> #include <ctime> #include <cstdlib> using namespace std; cla

ID: 3810675 • Letter: #

Question

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

class GuessingGame
{
private:
int NumberGuesses = 0;
bool trueorfalse;
int randomnumber;
int maxnum = 100;
int minnum = 0;
public:
GuessingGame();
void Display1();
int setrandomnumber(int);
void setNumberGuesses(int);
void settrueorfalse(bool);
void endgame();
};
GuessingGame::GuessingGame()
{
NumberGuesses = 0;
int randomnumber = 0;
int maxnum = 100;
int minnum = 0;
}
void GuessingGame::Display1()
{
cout << "...................Welcome to The Guessing Game.................... " << endl;
cout << ".....You randomly choose a number and try guess the right number... " << endl;
}
void GuessingGame::endgame()
{
cout << "The Game has ended: " << endl;
}

int GuessingGame::setrandomnumber(int RN)
{
randomnumber = RN;
unsigned seed = time(0);
srand(seed);
RN = rand() % (maxnum + minnum - 1) - minnum;
return RN;

}
void GuessingGame::setNumberGuesses(int PlayerGuesses)
{
NumberGuesses = PlayerGuesses;
string yesorno;
int counter = 0;
int count = 0;
int RANDOMNUMBER;
do
{
GuessingGame a;
a.Display1();

cout << "Enter a Number: " << endl;
cin >> PlayerGuesses;
if(PlayerGuesses < a.setrandomnumber(RANDOMNUMBER))
{
cout << "Your number is to low: " << endl;
count++;
}
else if(PlayerGuesses > a.setrandomnumber(RANDOMNUMBER))
{
cout << "You number is to high: " << endl;
count++;
}
else
{
cout << "You Guess the right number: " << a.setrandomnumber(RANDOMNUMBER) << endl;
counter++;
}
cout << "The Number guesses correct: " << counter << " The number guesses wrong: " << count << endl;
cout << "Correct number was " << a.setrandomnumber(RANDOMNUMBER) << endl;
cout << "Do you want to play again? Enter(Yes or No): " << endl;
cin >> yesorno;
}while(yesorno == "Yes" || yesorno == "yes" || yesorno == "YEs" || yesorno == "YES" || yesorno == "yeS");

endgame();
}
void GuessingGame::settrueorfalse(bool found)
{
trueorfalse = found;

if(maxnum == 100 && minnum == 0)
{
found = true;
}
else
{
found = false;
}

}
class TicTacToe
{

private:
   bool turn;//false-computer, true-mine
   int emptyCell;
   char **mBoardNumbers;
   const int mSize;

public:
   TicTacToe() : emptyCell(0), mSize(3)
   {
       mBoardNumbers = new char*[mSize];
       for(int i = 0; i < mSize; i++)
       {
           mBoardNumbers[i] = new char[mSize];
       }

       for(int i = 0; i < mSize; i++)
       {
           for(int j = 0; j < mSize; j++)
           {
               mBoardNumbers[i][j] = '.';
           }
       }

       firstTurn();
       play();
   }

   ~TicTacToe()
   {
       for(int i = 0; i < mSize; i++)
       {
           delete[] mBoardNumbers[i];
       }
       delete[] mBoardNumbers;
   }
   void board();
   void firstTurn();
   void play();
   bool gameOver();


};
void TicTacToe::board()
   {
       cout << ".....Tic Tac Toe Board......" << endl;
       cout << " " << " 1 " << " 2 " << " 3 " << endl;

       char letter = 'A';
       for(int i = 0; i < mSize; i++)
       {
           cout << letter++;
           for(int j = 0; j < mSize; j++)
           {
               cout << " " << mBoardNumbers[i][j] << " ";
           }
           cout << endl;
       }
   }

   void TicTacToe::firstTurn()
   {
       cout << "1 - computer first 2 - your first: ";
       int choice = 0;
       cin >> choice;
       if (choice == 1)
           turn = false;
       else
       if (choice == 2)
           turn = true;
   }

   void TicTacToe::play()
   {
       while(true)
       {
           if (!turn)
           {
               int x = rand() % 3;
               int y = rand() % 3;

               system("cls");
               board();

               if (emptyCell == 8)
               {
                   if (gameOver())
                   {
                       return;
                   }
               }
               while (true)
               {
                   if (mBoardNumbers[x][y] != '.')
                   {
                       x = rand() % 3;
                       y = rand() % 3;
                   }else
                       break;
               }

               mBoardNumbers[x][y] = 'X';
               turn = !turn;
               emptyCell++;

               system("cls");
               board();

               if (gameOver())
               {
                   return;
               }
           }
           else
           {
               system("cls");
               board();
               if (emptyCell == 8)
               {
                   if (gameOver())
                   {
                       return;
                   }
               }
               while (true)
               {
                   cout << "input x and y: " << endl;
                   int x = 0;
                   int y = 0;
                   cin >> x >> y;
                   if (mBoardNumbers[x][y] == '.')
                   {
                       mBoardNumbers[x][y] = '0';
                       break;
                   }
                   else
                   {
                       cout << "Cell is not empty!" << endl;
                   }
               }
               emptyCell++;

               system("cls");
               board();

               if (gameOver())
               {
                   return;
               }

               turn = !turn;
           }
       }
   }

   bool TicTacToe::gameOver()
   {
       if ((mBoardNumbers[0][0] == mBoardNumbers[0][1] && mBoardNumbers[0][0] == mBoardNumbers[0][2] && mBoardNumbers[0][0] == 'X') ||
       (mBoardNumbers[1][0] == mBoardNumbers[1][1] && mBoardNumbers[1][0] == mBoardNumbers[1][2] && mBoardNumbers[1][0] == 'X') ||
       (mBoardNumbers[2][0] == mBoardNumbers[2][1] && mBoardNumbers[2][0] == mBoardNumbers[2][2] && mBoardNumbers[2][0] == 'X') ||
       (mBoardNumbers[0][0] == mBoardNumbers[1][0] && mBoardNumbers[0][0] == mBoardNumbers[2][0] && mBoardNumbers[0][0] == 'X') ||
       (mBoardNumbers[0][1] == mBoardNumbers[1][1] && mBoardNumbers[0][1] == mBoardNumbers[2][1] && mBoardNumbers[0][1] == 'X') ||
       (mBoardNumbers[0][2] == mBoardNumbers[1][2] && mBoardNumbers[0][2] == mBoardNumbers[2][2] && mBoardNumbers[0][2] == 'X') ||
       (mBoardNumbers[0][0] == mBoardNumbers[1][1] && mBoardNumbers[0][0] == mBoardNumbers[2][2] && mBoardNumbers[0][0] == 'X') ||
       (mBoardNumbers[0][2] == mBoardNumbers[1][1] && mBoardNumbers[0][2] == mBoardNumbers[2][0]) && mBoardNumbers[0][2] == 'X')
   {
           cout << "You lose!" << endl;
           return true;
   }
   else
   if ((mBoardNumbers[0][0] == mBoardNumbers[0][1] && mBoardNumbers[0][0] == mBoardNumbers[0][2] && mBoardNumbers[0][0] == '0') ||
       (mBoardNumbers[1][0] == mBoardNumbers[1][1] && mBoardNumbers[1][0] == mBoardNumbers[1][2] && mBoardNumbers[1][0] == '0') ||
       (mBoardNumbers[2][0] == mBoardNumbers[2][1] && mBoardNumbers[2][0] == mBoardNumbers[2][2] && mBoardNumbers[2][0] == '0') ||
       (mBoardNumbers[0][0] == mBoardNumbers[1][0] && mBoardNumbers[0][0] == mBoardNumbers[2][0] && mBoardNumbers[0][0] == '0') ||
       (mBoardNumbers[0][1] == mBoardNumbers[1][1] && mBoardNumbers[0][1] == mBoardNumbers[2][1] && mBoardNumbers[0][1] == '0') ||
       (mBoardNumbers[0][2] == mBoardNumbers[1][2] && mBoardNumbers[0][2] == mBoardNumbers[2][2] && mBoardNumbers[0][2] == '0') ||
       (mBoardNumbers[0][0] == mBoardNumbers[1][1] && mBoardNumbers[0][0] == mBoardNumbers[2][2] && mBoardNumbers[0][0] == '0') ||
       (mBoardNumbers[0][2] == mBoardNumbers[1][1] && mBoardNumbers[0][2] == mBoardNumbers[2][0]) && mBoardNumbers[0][2] == '0')
   {
           cout << "You won!" << endl;
           return true;
   }
   else
   if (emptyCell == 8)
   {
      cout << "Draw!" << endl;
      return true;
   }

   return false;
   }
class Isolation
{
// still working on game

private:
char square[17] = {'O','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'};
public:
void IsolationGameBoard();
int Isolationcheckgame();
void Isolationgame();
};
void Isolation::IsolationGameBoard()
{
cout << " Isolation Game ";

   cout << "Player 1 (O) - Player 2 (X)" << endl << endl;
   cout << endl;

   cout << " | | | " << endl;
   cout << " " << square[1] << " | " << square[2] << " | " << square[3] << " | " << square[4] << endl;

   cout << "_____|_____|_____|____" << endl;
   cout << " | | | " << endl;

   cout << " " << square[5] << " | " << square[6] << " | " << square[7] << " | " << square[8] << endl;

   cout << "_____|_____|_____|____" << endl;
   cout << " | | | " << endl;

   cout << " " << square[9] << " | " << square[10] << " | " << square[11] << " | " << square[12] << endl;

   cout << "_____|_____|_____|____" << endl;
   cout << " | | | " << endl;

   cout << " " << square[13] << " | " << square[14] << " | " << square[15] << " | " << square[16] << endl;

   cout << " | | | " << endl << endl;
}
int Isolation::Isolationcheckgame()
{
// still working on game

if (square[1] == square[2] && square[2] == square[3] && square[3] == square[4])

       return 1;
   else if (square[4] == square[5] && square[5] == square[6] && square[6] == square [7])

       return 1;
   else if (square[7] == square[8] && square[8] == square[9] && square[10] == square[11])

       return 1;
   else if (square[1] == square[4] && square[4] == square[7] && square[7] == square[10])

       return 1;
   else if (square[2] == square[5] && square[5] == square[8] && square[8] == square[11])

       return 1;
   else if (square[3] == square[6] && square[6] == square[9] && square[9] == square[12])

       return 1;
   else if (square[1] == square[5] && square[5] == square[9])

       return 1;
   else if (square[3] == square[5] && square[5] == square[7])

       return 1;
   else if (square[1] != '1' && square[2] != '2' && square[3] != '3'
&& square[4] != '4' && square[5] != '5' && square[6] != '6'
&& square[7] != '7' && square[8] != '8' && square[9] != '9')

       return 0;
   else
       return -1;
}
void Isolation::Isolationgame()
{
int player = 1,i,choice;

   char mark;
   do
   {
       IsolationGameBoard();
       player=(player%2)?1:2;

       cout << "Player " << player << ", enter a number: ";
       cin >> choice;

       mark=(player == 1) ? 'O' : 'X';

       square[1] = 'O';
       square[16] = 'X';

       if (choice == 1 && square[1] == '1')

           square[1] = mark;
       else if (choice == 2 && square[2] == '2')

           square[2] = mark;
       else if (choice == 3 && square[3] == '3')

           square[3] = mark;
       else if (choice == 4 && square[4] == '4')

           square[4] = mark;
       else if (choice == 5 && square[5] == '5')

           square[5] = mark;
       else if (choice == 6 && square[6] == '6')

           square[6] = mark;
       else if (choice == 7 && square[7] == '7')

           square[7] = mark;
       else if (choice == 8 && square[8] == '8')

           square[8] = mark;
       else if (choice == 9 && square[9] == '9')

           square[9] = mark;
       else
       {
           cout<<"Invalid move ";

           player--;
           cin.ignore();
           cin.get();
       }
       i=Isolationcheckgame();

       player++;
   }while(i==-1);
   IsolationGameBoard();
   if(i==1)

       cout<<"==>Player "<<--player<<" win ";
   else
       cout<<"==>Game draw";

   cin.ignore();
   cin.get();
}
class Game: public GuessingGame, public TicTacToe, public Isolation
{
private:
int PlayAgain;
public:
void setPlayAgain(int);
int getPlayAgain();


};
void Game::setPlayAgain(int redo)
{
PlayAgain = redo;
}
int Game::getPlayAgain()
{
return PlayAgain;
}
int main()
{
Game a;
int choice;
int game;
int yesorno;

do
{

cout << " Welcome to Games " << endl;
cout << "Enter 1(Guessing Game) " << endl;
cout << "Enter 2(Tic Tac Toe Game) " << endl;
cout << "Enter 3(Isolation Game) " << endl;
cin >> choice;


if(choice == 1)
{
a.setNumberGuesses(game);
}
else if(choice == 2)
{
a.play();
}
else if(choice == 3)
{
a.Isolationgame();
}
cout << "Do you want to play again? Enter (Yes or No)" << endl;
cin >> yesorno;
}while(yesorno != 4);


return 0;
}

***************************

completely ignores do while loop - doesnt display menu thanks c++

Explanation / Answer

Solution:

your main() code is:

int main()

{

Game a;

int choice;

int game;

int yesorno;

do

{

cout << " Welcome to Games " << endl;

cout << "Enter 1(Guessing Game) " << endl;

cout << "Enter 2(Tic Tac Toe Game) " << endl;

cout << "Enter 3(Isolation Game) " << endl;

cin >> choice;

  

  

if(choice == 1)

{

a.setNumberGuesses(game);

}

else if(choice == 2)

{

a.play();

}

else if(choice == 3)

{

a.Isolationgame();

}

cout << "Do you want to play again? Enter (Yes or No)" << endl;

cin >> yesorno;

}while(yesorno != 4);

return 0;

}

Here

cout << "Do you want to play again? Enter (Yes or No)" << endl;

cin >> yesorno;

}while(yesorno != 4);

You are asking the user to type Yes or No, and checking for while(yesorno != 4);

So change the menu, display 4. Exit

So, now yoyr main() will be

int main()
{
Game a;
int choice;
int game;
int yesorno;

do
{

cout << " Welcome to Games " << endl;
cout << "Enter 1(Guessing Game) " << endl;
cout << "Enter 2(Tic Tac Toe Game) " << endl;
cout << "Enter 3(Isolation Game) " << endl;

cout << "Enter 4(Exit) " << endl;

cin >> choice;

That's all.

Remove the following two lines, they are not needed.

cout << "Do you want to play again? Enter (Yes or No)" << endl;
cin >> yesorno;

Happy coding. The rest of the program remains unchanged.