C语言实现三子棋游戏:完整代码与详解
C语言实现三子棋游戏:完整代码与详解
想学习如何用C语言编写游戏吗?这篇文章将带你一步步实现一个简单的三子棋游戏。
代码示例c#include <stdio.h>
char board[3][3]; // 井字棋棋盘
void initializeBoard() { // 初始化棋盘 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { board[i][j] = ' '; } }}
void printBoard() { // 打印棋盘 printf('------------- '); for (int i = 0; i < 3; i++) { printf('| %c | %c | %c | ', board[i][0], board[i][1], board[i][2]); printf('------------- '); }}
int isBoardFull() { // 检查棋盘是否已满 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (board[i][j] == ' ') { return 0; // 棋盘未满 } } } return 1; // 棋盘已满}
int checkForWin(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 currentPlayer = 'X'; int gameOver = 0;
initializeBoard();
printf('欢迎来到井字棋游戏!
');
while (!gameOver) { printBoard();
printf('轮到玩家 %c 下棋,请输入行号(0-2)和列号(0-2):', currentPlayer); scanf('%d %d', &row, &col);
if (row < 0 || row > 2 || col < 0 || col > 2 || board[row][col] != ' ') { printf('无效的位置,请重新输入。
'); continue; }
board[row][col] = currentPlayer;
if (checkForWin(currentPlayer)) { printf('玩家 %c 获胜!', currentPlayer); gameOver = 1; } else if (isBoardFull()) { printf('平局!'); gameOver = 1; }
// 切换玩家 currentPlayer = (currentPlayer == 'X') ? 'O' : 'X'; }
printBoard();
return 0;}
代码解释
- 初始化棋盘:
initializeBoard()函数将棋盘数组board的每个元素设置为空格字符 (' '), 表示游戏开始时棋盘为空。2. 打印棋盘:printBoard()函数打印当前棋盘的状态。3. 检查棋盘是否已满:isBoardFull()函数检查棋盘上是否还有空格。如果有空格,则游戏尚未结束。4. 检查是否有玩家获胜:checkForWin()函数检查当前玩家是否已完成三连线(横向、纵向或对角线)。5. 主函数 (main): - 初始化游戏状态。 - 使用一个循环来进行游戏,直到游戏结束。 - 在每一轮循环中: - 打印棋盘。 - 获取当前玩家的输入(行号和列号)。 - 检查输入是否有效。 - 更新棋盘。 - 检查游戏是否结束(获胜或平局)。 - 切换玩家。 - 打印最终的棋盘状态。
总结
这篇文章介绍了如何使用C语言编写一个简单的三子棋游戏。通过这个例子,你可以学习到基本的C语言语法、数组操作、函数定义和游戏逻辑。你可以尝试修改代码,例如添加更复杂的游戏策略或改进用户界面,以增强游戏的趣味性。
原文地址: https://www.cveoy.top/t/topic/SvE 著作权归作者所有。请勿转载和采集!