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

The easiest way to conceptualize the board is as an array or a vector (See figur

ID: 3758657 • Letter: T

Question

The easiest way to conceptualize the board is as an array or a vector (See figure 1). This simplifies data entry because the human just enters the index number for the space they want to move to.

Add statements to the main() function to do the following:

Split this up into functions, do not write a monolithic block of

code. Create at least 4 functions, not counting main().

Test Human input and only accept valid moves.

Use whatever method is expedient to generate the computer moves; this isn’t an AI class.

Explanation / Answer

Answer :


#include <iostream>
using namespace std;

char square[10] = {'o','1','2','3','4','5','6','7','8','9'};

int checkwinner();
void displayboard();

int main()
{
   int player = 1,i,choice;

   char mark;
   do
   {
       displayboard();
       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=checkwinner();

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

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

   cin.ignore();
   cin.get();
   return 0;
}


int checkwinner()
{
   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;
}

void displayboard()
{
   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;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote