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

?This program runs fine, but want it to display the winners characters only at t

ID: 3556106 • Letter: #

Question

?This program runs fine, but want it to display the winners characters only at the end of the loop.

?

#include <iostream>

using namespace std;

?

?

int getRow();//Get Play Input

int player(int);//Get Players "1" and "2'

char character(int);//Get 'X' and 'O'

int intial(char[9]);//For board values 1-9

int determineWinner(char[9],int count);//Determine Winner

void board(char[9]);//Game board

void validatePlayerMove(char[9],int&);//Validate move

int main()

{

int count=0;//To keep track of Player #1 and #2

char g[9];//For the 9 places on the board

char intialBoard;//For 9 the numbers of the board

int getrow;//Get Player Input

char m;//For 'X' and 'O'

int getPlayer=0;

int i=0;

intialBoard=intial(g);//Puts the nine numbers in place on the board

do{

board(g);//For Game Board filled by g

getPlayer=player(count);//Initializes two players

getrow=getRow();//Get Player Input

m=character(count);//Intiallize X and O

validatePlayerMove(g,getrow);//If move is not valid.

g[getrow-1]=m;//For X and O can be placed on board.

cout<<" ";

i=determineWinner(g,count);

if(i==1)// '1' is winning conditions

{ board(g);

cout<<"Player "<<((count%2)+1)<<" won the game."<<endl;

}

count++;//Advance Players

}while(i==-1);// '-1' is game in progress

if(i==0)//No winner

{

cout<<"Draw"<<endl;

}

return 0;

}

int player(int count)//For Player 1 and 2

{

int t=0;

cout<<" Player " <<((count%2)+1);

t=count;

return t;

?

}

int getRow()//Get player input

{

int row;

cout<<" Enter number: ";

cin>>row;

return row;

?

}

int intial(char g[9])//Sets each number for board.

{

int t=0;

for(int i=0; i<9; i++)

{

g[i];

if(g[0])

{

g[0]='1';

}

if(g[1])

{

g[1]='2';

}

if(g[2])

{

g[2]='3';

}

if(g[3])

{

g[3]='4';

}

if(g[4])

{

g[4]='5';

}

if(g[5])

{

g[5]='6';

}

if(g[6])

{

g[6]='7';

}

if(g[7])

{

g[7]='8';

}

if(g[8])

{

g[8]='9';

}

t=g[i];

}

return t;

?

}

?

char character(int count)//Players assigned letters

{char m;

char a;

m=(count%2==0) ? 'X' : '0';

a=m;

return a;

}

int determineWinner(char g[9],int count)

{

char m;

m=(count%2==0) ? 'X' : '0';

if (g[0] == g[1]&& g[1] ==g[2]) // first row

return 1;

else if(g[3] == g[4]&& g[4] ==g[5])// sec row

return 1;

else if(g[6] == g[7]&& g[7] ==g[8])

return 1;

else if(g[0] == g[3]&& g[3] ==g[6])

return 1;

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

return 1;

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

return 1;

else if(g[0] == g[4]&& g[4] ==g[8])

return 1;

else if(g[2] == g[4]&& g[4] ==g[6])

return 1;

else if (g[0] != '1' && g[1] != '2' && g[2] != '3' && g[3] != '4' && g[4] != '5' && g[5] != '6' && g[6] != '7' && g[7] != '8' && g[8] != '9')

return 0;

else

return -1;

}

void board(char g[9])

{

cout << endl;

cout << " | | " << endl;

cout << " " << g[0] << " | " << g[1] << " | " << g[2] << endl;

cout << "_____|_____|_____" << endl;

cout << " | | " << endl;

cout << " " << g[3] << " | " << g[4] << " | " << g[5] << endl;

cout << "_____|_____|_____" << endl;

cout << " | | " << endl;

cout << " " << g[6] << " | " << g[7] << " | " << g[8] << endl;

cout << " | | " << endl << endl;

?

?

}

void validatePlayerMove(char g[9],int&getrow)

{

while(g[getrow-1]== 'X'|| g[getrow - 1] == '0')

{

cout<<"Invalid move"<<endl;

getrow=getRow();//Get Player Input

cin.ignore();

}

?

?

?

}

Explanation / Answer

#include <stdio.h>
#define XPLAYER 0
#define OPLAYER 1
#define OPEN 32

#define TIEGAME 2
#define LIVEGAME 3

char board[3][3];

void display_board()
{
printf("------------ ");
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("| %c ",board[i][j]);
}
printf("| ");
printf("------------- ");
}
}

void initialize_board()
{
for(int i=0; i< 3; i++)
{
for(int j=0; j<3; j++)
{
board[i][j]= ((48 + i*3 + j )) ;
}
}
display_board();
}
int mainmenu()
{
int ch;
printf("Press 1 if you want to play Press 0 if you want to quit Enter your choice : ");
scanf("%d",&ch);
if(ch==0)
return 1;
else
initialize_board();
return 0;
}
int startscreen()
{
return mainmenu();
}

int get_player_move()
{
int move;
scanf("%d",&move);
return move;
}
int check_valid_move(int move)
{
if(move > 8 || move < 0)
return 0;
int y = move%3;
int x=move/3;
if((board[x][y]=='O') || (board[x][y]=='X'))
return 0;
return 1;
}
int check_win(char ch)
{
if(board[0][0] == ch && board[0][1] ==ch && board[0][2] == ch)
return 1;
if(board[0][0] == ch && board[1][1] ==ch && board[2][2] == ch)
return 1;
if(board[1][0] == ch && board[1][1] ==ch && board[1][2] == ch)
return 1;
if(board[2][0] == ch && board[2][1] ==ch && board[2][2] == ch)
return 1;
if(board[0][1] == ch && board[1][1] ==ch && board[2][1] == ch)
return 1;
if(board[0][2] == ch && board[1][2] ==ch && board[2][2] == ch)
return 1;
if(board[0][0] == ch && board[1][0] ==ch && board[2][0] == ch)
return 1;
if(board[0][2] == ch && board[1][1] ==ch && board[2][0] == ch)
return 1;
return 0;
}


int check_tied()
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(board[i][j]!='X' || board[i][j]!='O')
return 0;
}
}
return 1;
}
int check_winner()
{
if(check_win('X')== 1)
return XPLAYER;
if(check_win('O')== 1)
return OPLAYER;
if(check_tied() == 1)
return TIEGAME;
return LIVEGAME;
}


int main()
{   
while(1)
{
if(startscreen()==1)
break;
  
for(int i=0;i<9; i++)
{
if(i%2==0)
{
printf(" ");
printf("Player X Turn ");
int move = get_player_move();
while(!check_valid_move(move))
{printf("INVALID MOVE... PLEASE ENTER AGAIN ");
move=get_player_move();
}
int y=move%3;
int x=move/3;
board[x][y]='X';
display_board();
}
else
{
printf(" ");
printf("Player O Turn ");
int move = get_player_move();
while(!check_valid_move(move))
{
printf("INVALID MOVE... PLEASE ENTER AGAIN ");
move=get_player_move();
}
int y=move%3;
int x=move/3;
board[x][y]='O';
display_board();
}
if(check_winner()== XPLAYER)
{
printf("PLAYER X WON... ");
break;
}
if(check_winner()== OPLAYER)
{
printf("PLAYER O WON... ");
break;
}
if(check_winner()== TIEGAME)
{
printf("GAME TIED... ");
break;
}
if(check_winner()== LIVEGAME)
{
printf("GAME IS ON.... ");
}
}
}
}

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