编辑代码

#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 = 'O';
		}
		else
		{
			player = 'X';
		}
			
	}
   
   return 0;
}