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;}

代码解释

  1. 初始化棋盘: initializeBoard() 函数将棋盘数组 board 的每个元素设置为空格字符 (' '), 表示游戏开始时棋盘为空。2. 打印棋盘: printBoard() 函数打印当前棋盘的状态。3. 检查棋盘是否已满: isBoardFull() 函数检查棋盘上是否还有空格。如果有空格,则游戏尚未结束。4. 检查是否有玩家获胜: checkForWin() 函数检查当前玩家是否已完成三连线(横向、纵向或对角线)。5. 主函数 (main): - 初始化游戏状态。 - 使用一个循环来进行游戏,直到游戏结束。 - 在每一轮循环中: - 打印棋盘。 - 获取当前玩家的输入(行号和列号)。 - 检查输入是否有效。 - 更新棋盘。 - 检查游戏是否结束(获胜或平局)。 - 切换玩家。 - 打印最终的棋盘状态。

总结

这篇文章介绍了如何使用C语言编写一个简单的三子棋游戏。通过这个例子,你可以学习到基本的C语言语法、数组操作、函数定义和游戏逻辑。你可以尝试修改代码,例如添加更复杂的游戏策略或改进用户界面,以增强游戏的趣味性。

C语言实现三子棋游戏:完整代码与详解

原文地址: https://www.cveoy.top/t/topic/SvE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录