```c
include
define ROW 3
define COL 3
int main() {
int player = 0;
int winner = 0;
int choice = 0;
unsigned int row = 0;
unsigned int col = 0;
char board[ROW][COL] = { {'1','2','3'},{'4','5','6'},{'7','8','9'} };
// 主游戏循环. 只要没有获胜者
for(unsigned int i = 0; i < 9 && winner == 0; ++i) {
// 显示白板
printf("\n");
printf("%c |%c |%c \n", board, board, board);
printf("%c |%c |%c \n", board, board, board);
printf("%c |%c |%c \n", board, board, board);
player = i % 2 + 1; // 获取有效的玩家编号
// 获取玩家输入
printf("玩家%d,请输入一个有效的行数(1-3): ", player);
scanf("%d", &choice);
row = --choice / 3;
// 获取玩家输入
printf("玩家%d,请输入一个有效的列数(1-3): ", player);
scanf("%d", &choice);
col = --choice % 3;
// 放置玩家棋子
board[row][col] = player;
// 检查获胜者
if (board[row][col] != ' ') {
winner = player;
}
}
if (winner == 0) {
printf("这是一个井字游戏,请尽情享受!\n");
} else {
printf("玩家%d获胜!\n", winner);
}
return 0;
}
```
这个代码实现了一个简单的井字游戏,玩家轮流在3x3的棋盘上放置自己的棋子('X'或'O'),第一个玩家总是放'X',第二个玩家总是放'O'。游戏会一直进行,直到有玩家获胜或棋盘填满。如果有玩家获胜,程序会输出获胜者的编号;如果棋盘填满且没有玩家获胜,则游戏以平局结束。