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

program in C! Write a program that will allow two users to play a tic-tac-toe ga

ID: 3720313 • Letter: P

Question

program in C!

Write a program that will allow two users to play a tic-tac-toe game. You should write the program such that two people can play the game without any special instructions. (assume they know how to play the game) Prompt first player(X) to enter their first move. Then draw the gameboard showing the move. Prompt the second player(O) to enter their first move. Then draw the gameboard showing both moves. And so on...through 9 moves. . . You will need to: 1) Test each move to see if that space is still available 2) After each move, check to see if someone has won the game yet 3) After 9 moves, if there is not winner declare a draw. You must use functions to: . Test each move to see if it's a valid move . Check to see if someone has won.

Explanation / Answer

#include <stdio.h>
#include <conio.h>

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;

printf("Player %d, enter a number: ", player);
scanf("%d", &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
{
printf("Invalid move ");

player--;
getch();
}
i = checkwin();

player++;
}while (i == - 1);
  
board();
  
if (i == 1)
printf("==>Player %d win ", --player);
else
printf("==>Game draw");

getch();

return 0;
}


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");
printf(" Tic Tac Toe ");

printf("Player 1 (X) - Player 2 (O) ");


printf(" | | ");
printf(" %c | %c | %c ", square[1], square[2], square[3]);

printf("_____|_____|_____ ");
printf(" | | ");

printf(" %c | %c | %c ", square[4], square[5], square[6]);

printf("_____|_____|_____ ");
printf(" | | ");

printf(" %c | %c | %c ", square[7], square[8], square[9]);

printf(" | | ");
}