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

#include <iostream> using namespace std ; char gameboard[ 10 ] = { \'o\' , \'1\'

ID: 3536781 • Letter: #

Question

#include <iostream>

using namespace std;


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

char makeamovex(int, char);

char makeamoveO(int, char);

int winner();

void board();


int main()

{

int i;

char p;

while(i==-1);

{

board();

makeamovex(-1, p);

if(i==1)

cout<<"Great job, You won!!!! ";

else if (i==0)

cout<<"The game is a Draw!";

  

return 0;

  

makeamoveO(-1, p);

  

if(i==1)

cout<<"Great job, You won!!!! ";

else if (i==0)

cout<<"The game is a Draw!";

return 0;

  

}


char makeamovex(void board(), int winner, char p)

{

int choice;

char p;

  

board();

cout<< "Enter the number of the spot where you want your move to go: ";

cin >> choice;

p='X';

  

if (choice == 1 && gameboard[1] == '1')

  

gameboard[1] = p;

else if (choice == 2 && gameboard[2] == '2')

  

gameboard[2] = p;

else if (choice == 3 && gameboard[3] == '3')

  

gameboard[3] = p;

else if (choice == 4 && gameboard[4] == '4')

  

gameboard[4] = p;

else if (choice == 5 && gameboard[5] == '5')

  

gameboard[5] = p;

else if (choice == 6 && gameboard[6] == '6')

  

gameboard[6] = p;

else if (choice == 7 && gameboard[7] == '7')

  

gameboard[7] = p;

else if (choice == 8 && gameboard[8] == '8')

  

gameboard[8] = p;

else if (choice == 9 && gameboard[9] == '9')

  

gameboard[9] = p;

else

{

cout<<"Invalid move! Try again ";

}

int i;

i=winner;

};




char makeamoveO(void board(), int winner, char p)

{


{

int choice;

char p;

  

board();

cout<< "Enter the number of the spot where you want your move to go: ";

cin >> choice;

p='O';

  

if (choice == 1 && gameboard[1] == '1')

  

gameboard[1] = p;

else if (choice == 2 && gameboard[2] == '2')

  

gameboard[2] = p;

else if (choice == 3 && gameboard[3] == '3')

  

gameboard[3] = p;

else if (choice == 4 && gameboard[4] == '4')

  

gameboard[4] = p;

else if (choice == 5 && gameboard[5] == '5')

  

gameboard[5] = p;

else if (choice == 6 && gameboard[6] == '6')

  

gameboard[6] = p;

else if (choice == 7 && gameboard[7] == '7')

  

gameboard[7] = p;

else if (choice == 8 && gameboard[8] == '8')

  

gameboard[8] = p;

else if (choice == 9 && gameboard[9] == '9')

  

gameboard[9] = p;

else

{

cout<<"Invalid move! Try again ";

}

int i;

i=winner;

}

  



int winner()

{

if (gameboard[1] == gameboard[2] && gameboard[2] == gameboard[3])

  

return 1;

else if (gameboard[4] == gameboard[5] && gameboard[5] == gameboard[6])

  

return 1;

else if (gameboard[7] == gameboard[8] && gameboard[8] == gameboard[9])

  

return 1;

else if (gameboard[1] == gameboard[4] && gameboard[4] == gameboard[7])

  

return 1;

else if (gameboard[2] == gameboard[5] && gameboard[5] == gameboard[8])

  

return 1;

else if (gameboard[3] == gameboard[6] && gameboard[6] == gameboard[9])

  

return 1;

else if (gameboard[1] == gameboard[5] && gameboard[5] == gameboard[9])

  

return 1;

else if (gameboard[3] == gameboard[5] && gameboard[5] == gameboard[7])

  

return 1;

else if (gameboard[1] != '1' && gameboard[2] != '2' && gameboard[3] != '3'

   && gameboard[4] != '4' && gameboard[5] != '5' && gameboard[6] != '6'

   && gameboard[7] != '7' && gameboard[8] != '8' && gameboard[9] != '9')

  

return 0;

else

return -1;

  

}



void board()

{

cout << gameboard[1] << gameboard[2] << gameboard[3] << endl;

cout << gameboard[4] << gameboard[5] << gameboard[6] << endl;

cout << gameboard[7] << gameboard[8] << gameboard[9] << endl;

}

Explanation / Answer

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

void board_display();

void user_move();

void machine_move();

void rdm();

void re_pos(int);

void assign(char,int,int);

int win_poss(char);

int chk();

int chk1(int,int);

int magic_sq[3][3]={8,1,6,3,5,7,4,9,2};

int rg,cg,a[9]={0};

char tic_tac[3][3]={'*','*','*','*','*','*','*','*','*'};

int main(void)

{

int i,j,ch,c,c1;

char k;

clrscr();

printf("Do you want to play first 1.Yes 2.No");

scanf(" %d",&ch);

switch(ch)

{

//==============first move by user=======================

case 1:

/*U 1*/ user_move();

board_display();

/*M 1*/ printf(" My move");

if(tic_tac[1][1]=='U')

tic_tac[0][0]='M';

else

tic_tac[1][1]='M';

board_display();

/*U 2*/ user_move();

board_display();

/*M 2*/ machine_move();

board_display();

/*U 3*/ user_move();

board_display();

/*M 3*/ machine_move();

board_display();

/*U 4*/ user_move();

board_display();

/*M 4*/ machine_move();

board_display();

/*U 4*/ user_move();

printf("Match Draw");

break;

//=============first move by machine=====================

case 2: printf(" My move");

/*M 1*/ tic_tac[1][1]='M';

board_display();

/*U 1*/ user_move();

board_display();

/*M 2*/ printf(" My move");

if(tic_tac[0][0]=='U')

tic_tac[0][2]='M';

else

tic_tac[0][0]='M';

board_display();

/*U 2*/ user_move();

board_display();

/*M 3*/ machine_move();

board_display();

/*U 3*/ user_move();

board_display();

/*M 4*/ machine_move();

board_display();

/*U 4*/ user_move();

board_display();

/*M 5*/ machine_move();

board_display();

printf("Match Draw");

break;

}

getch();

return 0;

}

int chk()

{

if(tic_tac[rg][cg]=='M' || tic_tac[rg][cg]=='U')

return 0;

else

return 1;

}

int chk1(int r,int c)

{

if(tic_tac[r][c]=='M' || tic_tac[r][c]=='U')

return 0;

else

return 1;

}

void re_pos(int n)

{

int i,j;

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

if(magic_sq[i][j]==n)

{

rg=i;

cg=j;

}

}

}

}

void board_display() //=======Display Board=====

{

int i,j;

printf(" ");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

printf(" %c",tic_tac[i][j]);

}

printf(" ");

}

}

void assign(char k,int row,int col) //==assign value==

{

tic_tac[row-1][col-1]=k;

}

void user_move()

{

int r,c;

printf(" Enter your move");

scanf(" %d %d",&r,&c);

if(tic_tac[r-1][c-1]=='M' || tic_tac[r-1][c-1]=='U')

printf(" Your move gone waste");

else

tic_tac[r-1][c-1]='U';

}

int win_poss(char k)

{

int i,j,re,count=0;

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

if(tic_tac[i][j]==k)

{

a[count]=magic_sq[i][j];

count++;

}

}

}

for(i=0;i<(count-1);i++)

{

for(j=i+1;j<count;j++)

{

re=15-(a[i]+a[j]);

if(re>0)

{

re_pos(re);

if(chk()==1)

return re;

} //if

} //for

} //for

return -1;

}

void rdm()

{

if(tic_tac[0][0]=='*' && chk1(0,0)==1)

{rg=0;cg=0; re_pos(re);}

else

if(tic_tac[0][2]=='*' && chk1(0,2)==1)

{rg=0;cg=2; re_pos(re);}

else

if(tic_tac[0][1]=='*' && chk1(0,1)==1)

{rg=0;cg=1; re_pos(re);}

else

if(tic_tac[1][0]=='*' && chk1(1,0)==1)

{rg=1;cg=0; re_pos(re);}

else

if(tic_tac[1][2]=='*' && chk1(1,2)==1)

{rg=1;cg=2; re_pos(re);}

else

if(tic_tac[2][1]=='*' && chk1(2,1)==1)

{rg=2;cg=1; re_pos(re);}

}

void machine_move()

{ int c;

printf(" My move");

c=win_poss('M');

if(c>=0)

{

tic_tac[rg][cg]='M';

board_display();

printf("I won");

exit(0);

}

else

{

c=win_poss('U');

if(c>0)

{

tic_tac[rg][cg]='M';

}

else

{

rdm();

}

}

}