#include <stdio.h>
char board[3][3];
void initialize_board()
{
for(int row = 0; row < 3; row++)
{
for(int col = 0; col < 3; col++)
{
board[row][col] = ' ';
}
}
}
void print_board()
{
printf(" %c | %c | %c \n", board[0][0], board[0][1], board[0][2]);
printf("---+---+---+\n");
printf(" %c | %c | %c \n", board[1][0], board[1][1], board[1][2]);
printf("---+---+---+\n");
printf(" %c | %c | %c \n", board[2][0], board[2][1], board[2][2]);
}
int check_win(char player)
{
for (int i = 0; i < 3; i++)
{
if(board[i][0] == player &&
board[i][1] == player &&
board[i][2] == player)
{
return 1;
}
if(board[0][i] == player &&
board[1][i] == player &&
board[2][i] == player)
{
return 1;
}
if(board[0][0] == player &&
board[1][1] == player &&
board[2][2] == player)
{
return 1;
}
if(board[0][2] == player &&
board[1][1] == player &&
board[2][0] == player)
{
return 1;
}
return 0;
}
}
int main()
{
int row, col;
char player = 'X';
initialize_board();
while (1)
{
printf("Player %c's turn.\n",player);
printf("Enter row (0-2): ");
scanf("%d", &row);
printf("Enter column (0-2): ");
scanf("%d", &col);
if(row < 0 || row > 2 || col < 0 || col > 2)
{
printf("Invalid input. Try again. \n");
continue;
}
if (board[row][col] != ' ')
{
printf("That space is already occupied. Try again. \n");
continue;
}
board[row][col] = player;
print_board();
if(check_win(player))
{
printf("Player %c wins!\n", player);
break;
}
if(player == 'X')
{
player = '0';
}
else
{
player = 'X';
}
}
return 0;
}