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

In C++ Implement a class to play the game of tic-tac-toe with two players. The c

ID: 3855681 • Letter: I

Question

In C++ Implement a class to play the game of tic-tac-toe with two players. The class contains as private data member a 3 by 3 array of integers. The constructor should initialize the empty

board to zeros. When the first player moves, place 1 in the specified square; place 2 when the second player moves. Each move must be done in an empty square. After each move, determine if the game has been won or if the game is a draw.

A sample run follows.

000 000 000

Player1 move: 1 1 100
000
000

Player2 move: 2 2 100
020
000

Player1 move: 3 1 100
020
100

Player2 move: 1 1
1 1 is used. Please choose another move: 3 3 100
020
102

Player1 move: 2 1 100
120
102

The header, implementation and driver programs should be respectively named: TicTacToe.h, TicTacToe.cpp and TestTicTacToe.cpp

Can anyone help me please

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;

}