c语言九宫格叉圈实现代码
时间: 2023-08-12 19:26:06 浏览: 86
以下是用 C 语言实现九宫格叉圈游戏的代码:
```c
#include <stdio.h>
char board[3][3] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'} }; // 九宫格棋盘
char player = 'X'; // 初始玩家为 X
void draw_board(); // 绘制棋盘
void play(); // 玩家进行游戏
char check_win(); // 检查是否有玩家获胜
int main() {
draw_board(); // 绘制初始棋盘
while (1) { // 无限循环进行游戏
play(); // 玩家进行游戏
if (check_win()) { // 如果有玩家获胜
printf("%c wins!\n", player); // 输出获胜玩家
break; // 结束游戏
}
if (player == 'X') { // 切换玩家
player = 'O';
} else {
player = 'X';
}
}
return 0;
}
void draw_board() {
printf("\n");
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]);
printf("\n");
}
void play() {
int row, col;
printf("Player %c's turn.\n", player);
printf("Enter row number (1-3): ");
scanf("%d", &row);
printf("Enter column number (1-3): ");
scanf("%d", &col);
if (row < 1 || row > 3 || col < 1 || col > 3) { // 输入不合法
printf("Invalid input! Try again.\n");
play();
} else if (board[row-1][col-1] == 'X' || board[row-1][col-1] == 'O') { // 当前位置已有棋子
printf("This position has already been taken! Try again.\n");
play();
} else { // 输入合法,落子
board[row-1][col-1] = player;
draw_board();
}
}
char check_win() {
int i;
for (i = 0; i < 3; i++) {
if (board[i][0] == board[i][1] && board[i][1] == board[i][2]) { // 横向获胜
return board[i][0];
}
if (board[0][i] == board[1][i] && board[1][i] == board[2][i]) { // 纵向获胜
return board[0][i];
}
}
if (board[0][0] == board[1][1] && board[1][1] == board[2][2]) { // 从左上到右下的斜线获胜
return board[0][0];
}
if (board[0][2] == board[1][1] && board[1][1] == board[2][0]) { // 从右上到左下的斜线获胜
return board[0][2];
}
return '\0'; // 没有玩家获胜
}
```
该代码实现了绘制九宫格棋盘、玩家进行游戏、检查是否有玩家获胜等功能。玩家可以通过输入行列号来落子,落子后会更新棋盘并检查是否有玩家获胜。如果有玩家获胜,程序会输出获胜玩家并结束游戏。
阅读全文