基于SDL图形库开发的围棋游戏,实现了围棋的基本规则和人机对弈功能。
框架由AstreoX搭建,MCTS参数由国科大同学BigTurtle调试
- 使用SDL图形化界面创建19×19的棋盘
- 实现围棋基本规则(自动提子、气的判断、自杀行为判断)
- 悔棋和回溯棋局功能(使用双向链表存储)
- 实时计算黑白双方气数并判断胜负
- 基于蒙特卡洛树搜索(MCTS)的AI对弈功能
- 打劫行为判断与提示
CGoGame/
├── main.c # 主程序入口
├── Makefile # 编译配置文件
├── include/ # 头文件目录
│ ├── board.h # 棋盘数据结构和基本操作
│ ├── game.h # 游戏逻辑和规则
│ ├── gui.h # 图形界面
│ ├── ai.h # AI算法
│ └── utils.h # 工具函数
├── src/ # 源代码目录
│ ├── board.c # 棋盘实现
│ ├── game.c # 游戏逻辑实现
│ ├── gui.c # 图形界面实现
│ ├── ai.c # AI算法实现
│ └── utils.c # 工具函数实现
├── libs/ # DLL依赖库目录
└── resources/ # 资源文件目录
└── logo.jpg # 国防科技大学图样
└── background.jpg # 国防科技大学图样
- SDL2
- SDL2_image
- SDL2_ttf
make
双击run_game.bat运行游戏
make prepare_release
这将在release目录下创建一个包含可执行文件和所有必要DLL的版本。
- [A] - 切换AI模式
- [U] - 悔棋
- [P] - 回溯棋局
- [T] - 显示/隐藏提示