Program Description Write a C++ program that will allow two players (sharing the
ID: 3772123 • Letter: P
Question
Program Description Write a C++ program that will allow two players (sharing the same keyboard) to play Tic Tac Toe. The program must satisfy the following requirements: 1) Creating a class: The program should define class TicTacToe according to the following class diagram. Use the data members indicated and member functions indicated. Additional data members and member functions can be added if you wish, but may not be necessary.
Class TicTacToe Member Data: - Size = 3: static const int - Board: char [Size][Size] - Player: string [2] - rowMove: int - colMove: int Size of the matrix Matrix for the game board Array of player names Row position for current move Column position for current move Member Functions: + TicTacToe(); + First_Player(): int + Enter_Player_Name(N: int): void + Display_Player_Name(N: int): void + Make_Move(N int): void + Valid_Move(): int + Display_Board(N: int): void + Set_Value(N: int): void + Game_Over(N: int): int Constructor – Create object and initialize Board with all null char Indicates which player goes first Enter player N Display name of player N Prompt player N to enter desired row and column Test to see if move is valid Display board after N turns Add X or O to the board for player N Test to see if game is over
Explanation / Answer
/**
tic tac toe game in the ansi c++
*/
#include <iostream>
using namespace std;
char square[10] = {'o','1','2','3','4','5','6','7','8','9'};
int checkwin();
void gameboard();
int main()
{
int player = 1,i,choice;
char mark;
do
{
gameboard();
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);
gameboard();
if(i==1)
cout<<"==>Player "<<--player<<" win ";
else
cout<<"==>Game draw";
cin.ignore();
cin.get();
return 0;
}
/*********************************************
GAME STATUS
GAME IS OVER WITH RESULT for 1
GAME IS IN PROGRESS for -1
GAME IS OVER AND NO RESULT for 0
**********************************************/
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;
}
/*******************************************************************
TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK
********************************************************************/
void gameboard()
{
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;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.