Keep track of whose turn it is (X or O) and inform the player about it. Allow a
ID: 3565477 • Letter: K
Question
Keep track of whose turn it is (X or O) and inform the player about it.
Allow a player to make a move. A player makes a move by informing your program at which location of the board he/she wants his/her respective symbol (X or O) to be placed. The options are as follows: 0 0, 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, 2 2. Notice that the player informs the row number, followed by a space, followed by a column number. Your program should verify if the move is valid (for example, 3 1 is not a valid move) and, in case of an invalid move, inform the user about it and ask for a valid move again.
Verify if there is a winner after every players move and also if the board is already full but we have no winners.
Your program should also allow the player to reinitialize the game to the beginning
Program should look like:
Keep track of whose turn it is (½X½ or ½O½) and inform the player about it. Allow a player to make a move. A player makes a move by informing your program at which location of the board he/she wants his/her respective symbol (½X½ or ½O½) to be placed. The options are as follows: ½0 0½, ½0 1½, ½0 2½, ½1 0½, ½1 1½, ½1 2½, ½2 0½, ½2 1½, ½2 2½. Notice that the player informs the row number, followed by a space, followed by a column number. Your program should verify if the move is valid (for example, 3 1 is not a valid move) and, in case of an invalid move, inform the user about it and ask for a valid move again. Verify if there is a winner after every player½s move and also if the board is already full but we have no winners. Your program should also allow the player to reinitialize the game to the beginning Program should look like: X IS THE WINNER!!! Another game? Enter Y or y for yes. New Game: X goes first.Explanation / Answer
#include <iostream>
using namespace std;
char square[10] = {'o','1','2','3','4','5','6','7','8','9'};
int checkwin();
void board();
int main()
{
int player = 1,i,choice;
char mark;
do
{
board();
player=(player%2)?1:2;
cout << "Player " << player << ", enter a number: ";
cin >> choice;
mark=(player == 1) ? 'X' : 'O';
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=checkwin();
player++;
}while(i==-1);
board();
if(i==1)
cout<<"==>Player "<<--player<<" win ";
else
cout<<"==>Game draw";
cin.ignore();
cin.get();
return 0;
}
/*********************************************
FUNCTION TO RETURN GAME STATUS
1 FOR GAME IS OVER WITH RESULT
-1 FOR GAME IS IN PROGRESS
O GAME IS OVER AND NO RESULT
**********************************************/
int checkwin()
{
if (square[1] == square[2] && square[2] == square[3])
return 1;
else if (square[4] == square[5] && square[5] == square[6])
return 1;
else if (square[7] == square[8] && square[8] == square[9])
return 1;
else if (square[1] == square[4] && square[4] == square[7])
return 1;
else if (square[2] == square[5] && square[5] == square[8])
return 1;
else if (square[3] == square[6] && square[6] == square[9])
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;
}
/*******************************************************************
FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK
********************************************************************/
void board()
{
//system("cls");
cout << " Tic Tac Toe ";
cout << "Player 1 (X) - Player 2 (O)" << endl << endl;
cout << endl;
cout << " | | " << endl;
cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl;
cout << "_____|_____|_____" << endl;
cout << " | | " << endl;
cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl;
cout << "_____|_____|_____" << endl;
cout << " | | " << endl;
cout << " " << square[7] << " | " << square[8] << " | " << square[9] << endl;
cout << " | | " << endl << endl;
}
/*******************************************************************
END OF PROJECT
********************************************************************/
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.