#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();
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.