mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-05-10 02:19:46 +08:00
69 lines
3.1 KiB
Plaintext
69 lines
3.1 KiB
Plaintext
项目要求文档 - 五子棋游戏 (v8.2)
|
||
|
||
1. 项目概述
|
||
- 开发一个基于C语言的五子棋游戏,支持本地多人、AI对战和网络对战模式。
|
||
- v8.0版本实现双版本架构:支持命令行界面和SDL3图形化界面。
|
||
- v8.2版本(当前版本)完善了专业安装包制作体系,提供企业级的软件分发解决方案。
|
||
- v8.2版本完善了软件分发体系,支持Inno Setup和NSIS双重安装包制作,提供专业级的软件打包和部署解决方案。
|
||
- 包括游戏配置、记录保存、复盘功能和专业安装包。
|
||
- 提供现代化的可视化用户体验和传统控制台体验。
|
||
|
||
2. 功能需求
|
||
- **游戏模式**:
|
||
- 单人模式:玩家 vs AI
|
||
- 双人模式:本地两人对战
|
||
- 网络模式:通过TCP/IP进行远程对战
|
||
- **棋盘和规则**:
|
||
- 默认15x15棋盘,支持自定义大小(5-25)
|
||
- 支持禁手规则选项
|
||
- 先手黑子,五连珠获胜
|
||
- **AI功能**:
|
||
- 实现AI算法,支持不同难度级别(1-5级)
|
||
- AI应能计算最佳落子位置
|
||
- 支持Alpha-Beta剪枝算法和威胁检测
|
||
- **配置管理**:
|
||
- 支持修改棋盘大小、禁手规则、计时器、网络端口等
|
||
- 配置保存到INI文件
|
||
- 默认配置和重置功能
|
||
- 统一的输入验证机制
|
||
- **游戏记录**:
|
||
- 自动保存对局记录到CSV文件
|
||
- 支持复盘功能,查看历史对局
|
||
- 记录包含时间戳、玩家信息、棋局步骤等
|
||
- **用户界面**:
|
||
- **控制台界面**:传统命令行界面显示棋盘
|
||
- **图形化界面**(v8.0新增):基于SDL3的现代化GUI界面
|
||
- **鼠标交互**:支持点击落子操作
|
||
- **窗口管理**:自动居中、响应式设计
|
||
- **事件驱动**:流畅的用户交互体验
|
||
- 支持坐标输入落子(数字格式:行 列)
|
||
- 显示当前玩家、计时、游戏状态等信息
|
||
- 菜单系统和配置界面
|
||
- **网络功能**:
|
||
- 支持服务器/客户端模式
|
||
- 实时传输棋子位置
|
||
- 超时和断线处理
|
||
- 支持端口配置
|
||
|
||
3. 技术要求
|
||
- 使用C语言开发
|
||
- Windows平台,包含Winsock网络库(-lws2_32链接)
|
||
- **SDL3图形库**(v8.0新增):用于GUI界面开发
|
||
- **双版本架构**:控制台版本和GUI版本并行支持
|
||
- 模块化设计:分离游戏逻辑、AI、配置、网络、UI、GUI等模块
|
||
- **安装包制作**:支持Inno Setup专业安装程序
|
||
- 错误处理和统一的输入验证
|
||
- 支持跨平台编译(Windows/Linux)
|
||
|
||
4. 非功能需求
|
||
- 性能:响应时间<1秒(AI计算除外)
|
||
- 可维护性:代码模块化,注释清晰
|
||
- 兼容性:Windows 11,支持GCC编译器
|
||
- 可扩展性:易于添加新的AI算法和游戏模式
|
||
|
||
5. 交付物
|
||
- 源代码文件(.c/.h文件)
|
||
- 配置文件(gobang_config.ini)
|
||
- 记录文件夹(records/)
|
||
- 文档:README.md、AI增强指南、架构重构指南、网络功能说明、图标指南等
|
||
- 代码统计报告和项目简介 |