C语言实现井字棋详解:从模块化思路到完整代码

拾柒
拾柒
发布时间:2026-10-13| 3人浏览过
原创

利用 C 语言中的二维数组和模块化函数思想,本文详细演示了如何构建并实现一个简单的终端版井字棋游戏。通过拆解初始化、界面渲染、人机交互以及胜负判定等核心功能,提供清晰易懂的完整代码框架。

1. 整体设计与模块化思路

在 C 语言中开发稍具规模的程序时,将所有逻辑堆砌在主函数内不仅难以维护,也无法体现结构化编程的优势。推荐采用“模块化”开发模式,将主程序的调用逻辑(如菜单选择)与实际的游戏运行机制分离。

首先定义棋盘的行列常量,并在主函数中调用核心测试/运行函数:

#include <stdio.h>
#include <time.h>
#define ROW 3
#define COL 3

void test();
int main()
{
    test();
    return 0;
}

2. 基础功能函数编写

完成游戏的核心在于几个关键的独立函数:负责界面的显示、玩家与电脑的移动策略,以及最终结果的判定。

第1步:实现基础菜单

提供一个简单的交互入口,供用户决定是否开启游戏:

void menu()
{
    printf("输入1开始游戏\n");
    printf("输入0退出游戏\n");
}

第2步:构建游戏调度循环 (test)

test 函数作为游戏的主调度器,使用 srand(time(NULL)) 获取随机种子以保证每次运行电脑的逻辑不同,并通过死循环配合开关语句来维持游戏的持续交互状态。

void test()
{
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
        switch(input)
        {
            case 1:
                game(); // 进入游戏模块
                break;
            case 0:
                printf("退出游戏\n");
                break;
            default:
                printf("选择错误,请重新输入\n");
                break;
        }
    } while(input); // 根据需求可优化为 while(input != 0)
}

第3步:棋盘数据初始化 (InitBoard)

创建一个字符型的二维数组来存储棋盘状态,并用空格(' ')将其全部填满,确保开局干净无误。

void InitBoard(char arr[ROW][COL], int row, int col)
{
    int i = 0;
    int j = 0;
    for(i = 0; i<row; i++)
    {
        for(j = 0; j<col; j++)
        {
            arr[i][j] = ' '; // 初始化为空格
        }
    }
}

第4步:棋盘打印渲染 (DisplayBoard)

将二维数组的内容按格式输出至控制台。为了模拟真实的网格外观,每一行单元格后需要拼接竖线(|),每一格之间需要拼接横线(---)。

void DisplayBoard(char board[ROW][COL], int row, int col)
{
    int i = 0;
    int j = 0;
    for (i = 0; i < row; i++)
    {
        for (j = 0; j < col; j++)
        {
            printf(
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。