#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.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.