五子棋c语言最简单代码
时间: 2024-12-04 13:30:19 浏览: 8
五子棋是一种两人对弈的策略游戏,用C语言编写一个简单的五子棋程序可以分为几个步骤:
1. **棋盘表示**:首先需要一个二维数组来模拟棋盘,通常用0代表空位,1代表黑子,-1代表白子。
```c
#define BOARD_SIZE 15 // 简单起见,假设棋盘大小为15x15
int board[BOARD_SIZE][BOARD_SIZE];
```
2. **用户输入**:让玩家轮流在指定的位置下棋。你可以用循环和条件判断来接收用户的输入,并检查是否合法。
```c
void placeStone(int player) {
int row, col;
printf("Player %d, enter row and column (1-%d): ", player, BOARD_SIZE);
scanf("%d%d", &row, &col); // 输入并校验坐标
if (board[row - 1][col - 1] == 0) { // 如果位置为空
board[row - 1][col - 1] = player; // 下子
} else {
printf("Invalid move!\n");
}
}
```
3. **胜负判定**:遍历棋盘,检查是否有五子连珠的情况。这可能涉及到两个嵌套循环,检查水平、垂直和对角线方向。
```c
bool isWinningMove(int player) {
for (int i = 0; i < BOARD_SIZE; ++i) {
for (int j = 0; j < BOARD_SIZE; ++j) {
if (checkLine(i, j, player)) return true;
}
}
return false;
}
// 检查从某个点出发的连续五个同色棋子
bool checkLine(int startRow, int startCol, int player) {
// ... 实现对四个相邻方向的检查
}
```
4. **游戏主循环**:反复调用`placeStone`函数,直到一方获胜或棋盘满。
```c
while (!isWinningMove(1) && !isWinningMove(-1)) {
placeStone(player);
switch_player(); // 轮换玩家
}
```
5. **显示结果**:游戏结束后,打印出胜者。
```c
printf("Player %d wins!\n", isWinningMove(1) ? 1 : -1);
```
阅读全文