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