项目要求文档 - 五子棋游戏 (v8.0) 1. 项目概述 - 开发一个基于C语言的五子棋游戏,支持本地多人、AI对战和网络对战模式。 - v8.0版本实现双版本架构:支持命令行界面和SDL3图形化界面。 - 包括游戏配置、记录保存、复盘功能和专业安装包。 - 提供现代化的可视化用户体验和传统控制台体验。 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增强指南、架构重构指南、网络功能说明、图标指南等 - 代码统计报告和项目简介