docs: 更新项目文档至v8.3并调整.gitignore

- 更新项目要求文档至v8.3版本,说明引入IUP图形库和构建系统优化
- 更新项目简介,详细说明v8.3的图形界面重构和目录结构调整
- 更新GUI说明文档,从SDL3迁移至IUP,并更新编译和运行指南
- 在.gitignore中添加obj目录,避免编译生成的对象文件被提交
This commit is contained in:
2026-03-16 13:26:28 +08:00
parent ec63b6d97c
commit 1332d14347
4 changed files with 92 additions and 92 deletions
+3
View File
@@ -49,5 +49,8 @@ Thumbs.db
# 打包文件 # 打包文件
dist/ dist/
# 编译生成的对象文件
obj/
# 临时游戏存档 # 临时游戏存档
*.csv *.csv
+52 -62
View File
@@ -1,12 +1,15 @@
# 五子棋游戏 - 图形化界面说明 (v8.0) # 五子棋游戏 - 图形化界面说明 (v8.3)
## 概述 ## 概述
v8.0版本实现了完整的双版本架构,支持两种界面模式:
- **控制台界面**:传统的文本界面,保持原有功能完整性
- **图形化界面**:基于SDL3的现代图形界面,提供可视化操作体验
## v8.0新增功能 v8.3版本引入了基于IUP的现代化图形界面,实现了完整的双版本架构:
-**SDL3图形化界面**:现代化的可视化棋盘
- **控制台界面**:传统的文本界面,保持原有功能完整性
- **图形化界面**:基于IUP的现代图形界面,提供可视化操作体验
## v8.3 新增功能
-**IUP图形化界面**:原生控件风格,轻量高效
-**鼠标交互支持**:点击落子,直观操作 -**鼠标交互支持**:点击落子,直观操作
-**窗口管理优化**:自动居中,响应式设计 -**窗口管理优化**:自动居中,响应式设计
-**事件驱动架构**:流畅的用户交互体验 -**事件驱动架构**:流畅的用户交互体验
@@ -15,73 +18,58 @@ v8.0版本实现了完整的双版本架构,支持两种界面模式:
## 环境要求 ## 环境要求
### SDL3库配置 ### IUP库配置
1. 下载SDL3-3.2.22开发库
2. 解压到:`D:\settings\SDL\SDL3-3.2.22\` 项目已内置IUP库(位于 `libs/iup-3.31_Win64_dllw6_lib`),无需额外安装。
3. 确保目录结构如下:
```
D:\settings\SDL\SDL3-3.2.22\
├── x86_64-w64-mingw32\
│ ├── include\ # 头文件
│ ├── lib\ # 库文件
│ └── bin\ # DLL文件
└── ...
```
### 编译环境 ### 编译环境
- GCC编译器(MinGW-w64)位于:`D:\Program Files\mingw64`
- GCC编译器(MinGW-w64
- Make工具(mingw32-make
- Windows 10/11操作系统 - Windows 10/11操作系统
- 支持OpenGL的显卡驱动
## 编译方法 ## 编译方法
### 方法一:使用批处理脚本(推荐) ### 方法一:使用Makefile(推荐)
```bash ```bash
# 编译图形化版本 # 编译图形化版本
.\compile_gui.bat mingw32-make gui
``` ```
### 方法二:手动编译 ### 方法二:手动编译
```bash ```bash
# 控制台版本 # GUI版本
gcc -std=c17 -o gobang.exe *.c -lws2_32 gcc -std=c17 -o bin/gobang_gui.exe src/*.c -Iinclude -Ilibs/iup-3.31_Win64_dllw6_lib/include -Llibs/iup-3.31_Win64_dllw6_lib -liup -lgdi32 -lcomdlg32 -lcomctl32 -luuid -lole32 -lws2_32
# 图形化版本 # 复制IUP动态库到bin目录
gcc -std=c17 -o gobang_gui.exe *.c -ID:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\include -LD:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\lib -lSDL3 -lws2_32 copy libs\iup-3.31_Win64_dllw6_lib\iup.dll bin\
# 复制SDL3.dll到当前目录
copy "D:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\bin\SDL3.dll" .
``` ```
## 运行方法 ## 运行方法
### 控制台版本
```bash
.\gobang.exe
```
在主菜单选择模式1-7进行游戏
### 图形化版本 ### 图形化版本
```bash ```bash
.\gobang_gui.exe .\bin\gobang_gui.exe
``` ```
在主菜单选择模式8启动图形化界面
或者在主菜单选择模式8启动图形化界面。
## 图形化界面功能 ## 图形化界面功能
- **窗口大小**800x600像素 - **窗口大小**800x600像素
- **棋盘显示**:15x15标准五子棋棋盘,木质纹理背景 - **棋盘显示**:15x15标准五子棋棋盘
- **鼠标操作**:点击棋盘交叉点进行落子 - **鼠标操作**:点击棋盘交叉点进行落子
- **键盘操作** - **键盘操作**
- `ESC`:退出图形化界面返回主菜单 - `ESC`:退出图形化界面返回主菜单
- `R`:重新开始游戏
- `U`:撤销上一步(如果支持)
- **游戏状态** - **游戏状态**
- 实时显示当前玩家(黑子/白子) - 实时显示当前玩家(黑子/白子)
- 显示游戏进度和状态 - 显示游戏进度和状态
- 胜负结果提示 - 胜负结果提示
- **视觉效果** - **视觉效果**
- 黑白棋子带阴影效果 - 清晰的黑白棋子
- 当前玩家指示器 - 当前玩家指示器
- 平滑的图形渲染 - 平滑的图形渲染
- **胜负判定**:自动检测五子连珠并显示获胜者 - **胜负判定**:自动检测五子连珠并显示获胜者
@@ -89,39 +77,39 @@ copy "D:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\bin\SDL3.dll" .
## 故障排除 ## 故障排除
### 编译错误 ### 编译错误
1. **找不到SDL3头文件**
- 检查SDL3库路径是否正确 1. **找不到IUP头文件**
- 确保include目录存在 - 检查Makefile中的`IUP_PATH`配置是否正确指向`libs`目录
2. **链接错误** 2. **链接错误**
- 检查lib目录是否存在 - 确保链接了所有必要的Windows系统库(`-lgdi32 -lcomdlg32 -lcomctl32 -luuid -lole32`
- 确保SDL3.lib文件存在
3. **运行时错误** 3. **运行时错误**
- 确保SDL3.dll在系统PATH中或与exe文件同目录 - 确保`iup.dll`位于可执行文件同级目录或系统PATH中
### 图形化界面启动失败 ### 图形化界面启动失败
- 检查SDL3库是否正确安装在指定路径
- 确保SDL3.dll文件在exe同目录下 - 确保`iup.dll`文件在exe同目录下
- 检查显卡驱动是否支持OpenGL
- 尝试以管理员权限运行 - 尝试以管理员权限运行
- 确认Windows版本兼容性 - 确认Windows版本兼容性
### 运行时问题 ### 运行时问题
- **窗口无法显示**:检查显示器分辨率设置
- **中文乱码**:确保代码中已启用UTF-8模式 `IupSetGlobal("UTF8MODE", "YES");`
- **鼠标点击无响应**:确认点击在棋盘交叉点附近 - **鼠标点击无响应**:确认点击在棋盘交叉点附近
- **游戏卡顿**:关闭其他占用GPU的程序
## 使用说明 ## 使用说明
### 快速开始 ### 快速开始
1. 运行 `compile_gui.bat` 编译图形化版本
2. 运行 `gobang_gui.exe` 启动程序 1. 运行 `mingw32-make gui` 编译图形化版本
2. 运行 `bin\gobang_gui.exe` 启动程序
3. 在主菜单选择 "8. 图形化界面" 3. 在主菜单选择 "8. 图形化界面"
4. 使用鼠标点击棋盘进行游戏 4. 使用鼠标点击棋盘进行游戏
5. 按ESC键退出图形化界面 5. 按ESC键退出图形化界面
### 游戏规则 ### 游戏规则
- 黑子先行,轮流落子 - 黑子先行,轮流落子
- 率先形成五子连珠者获胜 - 率先形成五子连珠者获胜
- 支持横、竖、斜四个方向的连珠判定 - 支持横、竖、斜四个方向的连珠判定
@@ -129,19 +117,21 @@ copy "D:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\bin\SDL3.dll" .
## 开发说明 ## 开发说明
### 文件结构 ### 文件结构
- `gui.h` - 图形化界面头文件
- `gui.c` - 图形化界面实现 - `include/gui.h` - 图形化界面头文件
- `main.c` - 主程序(已添加图形化模式 - `src/gui.c` - 图形化界面实现(基于IUP
- `compile_gui.bat` - 图形化版本编译脚本 - `src/main.c` - 主程序(已添加图形化模式)
- `Makefile` - 构建脚本
### 扩展功能 ### 扩展功能
图形化界面支持进一步扩展: 图形化界面支持进一步扩展:
- 音效支持
- 动画效果 - 更多IUP控件集成
- 主题切换 - 主题切换
- 网络对战界面 - 网络对战界面优化
- AI难度可视化调节 - AI难度可视化调节
--- ---
**注意**:首次使用图形化界面前,请确保SDL3库已正确配置。 **注意**:首次使用图形化界面前,请确保IUP动态库已正确复制。
+26 -21
View File
@@ -1,12 +1,18 @@
/** /**
* @file 五子棋对战系统 * @file 五子棋对战系统
* @brief C语言五子棋多模式对战系统 * @brief C语言五子棋多模式对战系统
* @details 支持人机对战、双人对战、网络对战的完整五子棋游戏系统,v8.0新增SDL3图形化界面 * @details 支持人机对战、双人对战、网络对战的完整五子棋游戏系统,v8.3新增IUP图形化界面
* @author 刘航宇(3364451258@qq.com、15236416560@163.com、lhy3364451258@outlook.com) * @author 刘航宇(3364451258@qq.com、15236416560@163.com、lhy3364451258@outlook.com)
* @date 2025-10-8 * @date 2026-03-16
* @version 8.2 * @version 8.3
* @note * @note
* 1. v8.2专业安装包 * 1. v8.3 图形界面重构
* - 🎨 IUP图形化界面:迁移至轻量级IUP库,无需复杂配置即可运行
* - 🏗️ 构建系统优化:引入Makefile,实现标准化编译流程
* - 📂 目录结构重构:分离src、obj、bin目录,项目结构更清晰
* - 🌐 本地化资源:集成第三方库到libs目录,实现开箱即用
*
* 2. v8.2专业安装包:
* - 📦 双重打包方案:支持Inno Setup和NSIS两种安装包制作 * - 📦 双重打包方案:支持Inno Setup和NSIS两种安装包制作
* - 🚀 一键安装部署:完整的软件分发解决方案 * - 🚀 一键安装部署:完整的软件分发解决方案
* - 🔧 安装程序优化:自动创建快捷方式和注册表项 * - 🔧 安装程序优化:自动创建快捷方式和注册表项
@@ -14,15 +20,14 @@
* - 🔄 完整卸载功能:支持干净的软件卸载和清理 * - 🔄 完整卸载功能:支持干净的软件卸载和清理
* - 💼 产品化部署:从开发工具向商业软件的转变 * - 💼 产品化部署:从开发工具向商业软件的转变
* *
* 2. v8.0图形化界面: * 3. v8.0图形化界面:
* - 🎨 SDL3图形化界面:实现现代化可视化棋盘界面 * - 🎨 SDL3图形化界面:实现现代化可视化棋盘界面(已废弃,迁移至IUP
* - 🖱️ 鼠标交互支持:直观的点击落子操作 * - 🖱️ 鼠标交互支持:直观的点击落子操作
* - 🏗️ 双版本架构:控制台版本和GUI版本并行支持 * - 🏗️ 双版本架构:控制台版本和GUI版本并行支持
* - 🪟 窗口管理优化:自动居中、响应式设计 * - 🪟 窗口管理优化:自动居中、响应式设计
* - ⚡ 事件驱动架构:流畅的用户交互体验 * - ⚡ 事件驱动架构:流畅的用户交互体验
* - 🔧 编译脚本优化:简化GUI版本编译流程
* - 🌐 GUI网络支持:图形化界面支持网络对战 * - 🌐 GUI网络支持:图形化界面支持网络对战
* 2. v7.0架构重构: * 4. v7.0架构重构:
* - 🏗️ 代码架构全面重构,实现模块化设计 * - 🏗️ 代码架构全面重构,实现模块化设计
* - 📋 配置参数统一管理,所有配置集中到config.h * - 📋 配置参数统一管理,所有配置集中到config.h
* - 🔧 全局变量规范化,统一在globals模块管理 * - 🔧 全局变量规范化,统一在globals模块管理
@@ -30,7 +35,7 @@
* - 🌐 网络配置重构,从network.h迁移到config.h * - 🌐 网络配置重构,从network.h迁移到config.h
* - 🔄 消除重复定义,提高代码一致性 * - 🔄 消除重复定义,提高代码一致性
* - 📚 完善文档体系,新增架构重构指南 * - 📚 完善文档体系,新增架构重构指南
* 2. v6.1完善功能: * 5. v6.1完善功能:
* - 🌐 完善的网络对战模式,支持服务器/客户端架构 * - 🌐 完善的网络对战模式,支持服务器/客户端架构
* - 🔗 实时数据同步,支持落子、悔棋、认输等网络功能 * - 🔗 实时数据同步,支持落子、悔棋、认输等网络功能
* - 🛡️ 网络安全验证和连接状态管理 * - 🛡️ 网络安全验证和连接状态管理
@@ -38,62 +43,62 @@
* - 🔧 全局变量统一管理,优化代码结构 * - 🔧 全局变量统一管理,优化代码结构
* - 📋 宏定义统一管理,消除重复定义 * - 📋 宏定义统一管理,消除重复定义
* - 🔄 网络协议优化,改进通信稳定性 * - 🔄 网络协议优化,改进通信稳定性
* 2. 核心游戏功能: * 6. 核心游戏功能:
* - 增加了对禁手规则的支持,防止玩家进行无意义的走法。 * - 增加了对禁手规则的支持,防止玩家进行无意义的走法。
* - 新增了游戏计时器功能,限制每回合的思考时间。 * - 新增了游戏计时器功能,限制每回合的思考时间。
* - 添加了复盘功能,支持保存和回顾对局记录。 * - 添加了复盘功能,支持保存和回顾对局记录。
* - 实现了评分系统,可以对每一步棋进行评分和分析。 * - 实现了评分系统,可以对每一步棋进行评分和分析。
* 3. 性能优化: * 7. 性能优化:
* - 🚀 优化了AI算法,使用Alpha-Beta剪枝提高搜索效率 * - 🚀 优化了AI算法,使用Alpha-Beta剪枝提高搜索效率
* - 🎨 改进了棋盘渲染算法,减少了不必要的重绘操作 * - 🎨 改进了棋盘渲染算法,减少了不必要的重绘操作
* - 💾 增加了内存管理优化,避免内存泄漏问题 * - 💾 增加了内存管理优化,避免内存泄漏问题
* - ⚡ 网络通信优化,支持异步消息处理 * - ⚡ 网络通信优化,支持异步消息处理
* - 🔍 智能评分算法优化,提升AI决策质量 * - 🔍 智能评分算法优化,提升AI决策质量
* 4. 用户界面改进: * 8. 用户界面改进:
* - 🎮 美化了游戏界面,增加了更多的视觉效果 * - 🎮 美化了游戏界面,增加了更多的视觉效果
* - ⌨️ 改进了用户交互体验,增加了快捷键支持 * - ⌨️ 改进了用户交互体验,增加了快捷键支持
* - 🔊 添加了音效和背景音乐,提升游戏沉浸感 * - 🔊 添加了音效和背景音乐,提升游戏沉浸感
* - 💬 网络对战聊天界面,支持实时交流 * - 💬 网络对战聊天界面,支持实时交流
* - 📊 游戏状态显示优化,清晰展示连接状态 * - 📊 游戏状态显示优化,清晰展示连接状态
* 5. 代码结构优化: * 9. 代码结构优化:
* - 🏗️ 重构了代码架构,提高了代码的可读性和可维护性 * - 🏗️ 重构了代码架构,提高了代码的可读性和可维护性
* - 📝 增加了详细的注释和文档,便于理解和修改 * - 📝 增加了详细的注释和文档,便于理解和修改
* - 🧩 采用了模块化设计,各功能模块相对独立 * - 🧩 采用了模块化设计,各功能模块相对独立
* - 🌍 新增网络模块,完整的网络通信架构 * - 🌍 新增网络模块,完整的网络通信架构
* - 🔧 全局状态统一管理,消除代码重复 * - 🔧 全局状态统一管理,消除代码重复
* - 📋 配置文件标准化,支持灵活配置 * - 📋 配置文件标准化,支持灵活配置
* 6. 异常处理: * 10. 异常处理:
* - 🛡️ 增加了输入错误的异常处理机制,确保游戏的稳定性 * - 🛡️ 增加了输入错误的异常处理机制,确保游戏的稳定性
* - 💡 优化了错误提示信息,帮助用户快速定位问题 * - 💡 优化了错误提示信息,帮助用户快速定位问题
* - 🔄 增加了程序崩溃恢复功能,提高游戏的可靠性 * - 🔄 增加了程序崩溃恢复功能,提高游戏的可靠性
* - 🌐 网络连接异常处理,自动重连和超时管理 * - 🌐 网络连接异常处理,自动重连和超时管理
* - 📡 消息传输错误处理,确保数据完整性 * - 📡 消息传输错误处理,确保数据完整性
* 7. 文档更新: * 11. 文档更新:
* - 📚 更新了README文件,提供详细的安装和使用说明 * - 📚 更新了README文件,提供详细的安装和使用说明
* - 💬 增加了代码注释,提高代码的可读性 * - 💬 增加了代码注释,提高代码的可读性
* - 👨‍💻 添加了开发者文档,便于后续的功能扩展 * - 👨‍💻 添加了开发者文档,便于后续的功能扩展
* - 🌐 新增网络对战使用指南和配置说明 * - 🌐 新增网络对战使用指南和配置说明
* - 🔧 API文档完善,支持二次开发 * - 🔧 API文档完善,支持二次开发
* 8. 版本控制: * 12. 版本控制:
* - 📦 使用Git进行版本控制,便于代码管理和协作开发 * - 📦 使用Git进行版本控制,便于代码管理和协作开发
* - 🚀 建立了清晰的版本发布流程,确保代码质量 * - 🚀 建立了清晰的版本发布流程,确保代码质量
* - 🏷️ v7.0版本更新,代码架构全面重构 * - 🏷️ v7.0版本更新,代码架构全面重构
- 🏷️ v6.1版本更新,网络功能完善优化 * - 🏷️ v6.1版本更新,网络功能完善优化
* - 📋 完整的变更日志,追踪功能演进 * - 📋 完整的变更日志,追踪功能演进
* 9. 测试: * 13. 测试:
* - ✅ 进行了全面的功能测试,确保各项功能正常运行 * - ✅ 进行了全面的功能测试,确保各项功能正常运行
* - 🧪 增加了单元测试,提高代码的可靠性 * - 🧪 增加了单元测试,提高代码的可靠性
* - ⚡ 进行了性能测试,优化了程序的运行效率 * - ⚡ 进行了性能测试,优化了程序的运行效率
* - 🌐 网络功能压力测试,确保多人对战稳定性 * - 🌐 网络功能压力测试,确保多人对战稳定性
* - 🔒 安全性测试,验证网络通信安全 * - 🔒 安全性测试,验证网络通信安全
* - 🔄 协议兼容性测试,确保通信协议稳定 * - 🔄 协议兼容性测试,确保通信协议稳定
* 10. 开源协议: * 14. 开源协议:
* - 📄 选择了MIT开源协议,允许用户自由使用、修改和分发代码 * - 📄 选择了MIT开源协议,允许用户自由使用、修改和分发代码
* - 🤝 欢迎社区贡献,共同完善项目 * - 🤝 欢迎社区贡献,共同完善项目
* 11. 贡献者: * 15. 贡献者:
* - 👨‍💻 感谢所有为项目做出贡献的开发者和用户 * - 👨‍💻 感谢所有为项目做出贡献的开发者和用户
* - 🌟 特别感谢网络功能开发、测试和优化的贡献者 * - 🌟 特别感谢网络功能开发、测试和优化的贡献者
* 12. 联系信息: * 16. 联系信息:
* - 📧 如有问题或建议,请联系开发者: * - 📧 如有问题或建议,请联系开发者:
* - 3364451258@qq.com * - 3364451258@qq.com
* - 15236416560@163.com * - 15236416560@163.com
+9 -7
View File
@@ -1,10 +1,10 @@
项目要求文档 - 五子棋游戏 (v8.2) 项目要求文档 - 五子棋游戏 (v8.3)
1. 项目概述 1. 项目概述
- 开发一个基于C语言的五子棋游戏,支持本地多人、AI对战和网络对战模式。 - 开发一个基于C语言的五子棋游戏,支持本地多人、AI对战和网络对战模式。
- v8.0版本实现双版本架构:支持命令行界面和SDL3图形化界面。 - v8.3版本(当前版本)引入了IUP图形库,实现了轻量级、跨平台的图形界面。
- v8.2版本(当前版本)完善了专业安装包制作体系,提供企业级的软件分发解决方案。 - v8.2版本完善了专业安装包制作体系,提供企业级的软件分发解决方案。
- v8.2版本完善了软件分发体系,支持Inno Setup和NSIS双重安装包制作,提供专业级的软件打包和部署解决方案 - v8.0版本实现双版本架构:支持命令行界面和GUI图形化界面
- 包括游戏配置、记录保存、复盘功能和专业安装包。 - 包括游戏配置、记录保存、复盘功能和专业安装包。
- 提供现代化的可视化用户体验和传统控制台体验。 - 提供现代化的可视化用户体验和传统控制台体验。
@@ -32,7 +32,7 @@
- 记录包含时间戳、玩家信息、棋局步骤等 - 记录包含时间戳、玩家信息、棋局步骤等
- **用户界面** - **用户界面**
- **控制台界面**:传统命令行界面显示棋盘 - **控制台界面**:传统命令行界面显示棋盘
- **图形化界面**v8.0新增):基于SDL3的现代化GUI界面 - **图形化界面**v8.3新增IUP):基于IUP的轻量级GUI界面
- **鼠标交互**:支持点击落子操作 - **鼠标交互**:支持点击落子操作
- **窗口管理**:自动居中、响应式设计 - **窗口管理**:自动居中、响应式设计
- **事件驱动**:流畅的用户交互体验 - **事件驱动**:流畅的用户交互体验
@@ -48,10 +48,11 @@
3. 技术要求 3. 技术要求
- 使用C语言开发 - 使用C语言开发
- Windows平台,包含Winsock网络库(-lws2_32链接) - Windows平台,包含Winsock网络库(-lws2_32链接)
- **SDL3图形库**v8.0新增):用于GUI界面开发 - **IUP图形库**v8.3新增):用于GUI界面开发,替代原SDL3方案
- **双版本架构**:控制台版本和GUI版本并行支持 - **双版本架构**:控制台版本和GUI版本并行支持
- 模块化设计:分离游戏逻辑、AI、配置、网络、UI、GUI等模块 - 模块化设计:分离游戏逻辑、AI、配置、网络、UI、GUI等模块
- **安装包制作**:支持Inno Setup专业安装程序 - **安装包制作**:支持Inno Setup和NSIS专业安装程序
- **构建系统**:使用Makefile管理编译流程
- 错误处理和统一的输入验证 - 错误处理和统一的输入验证
- 支持跨平台编译(Windows/Linux - 支持跨平台编译(Windows/Linux
@@ -60,6 +61,7 @@
- 可维护性:代码模块化,注释清晰 - 可维护性:代码模块化,注释清晰
- 兼容性:Windows 11,支持GCC编译器 - 兼容性:Windows 11,支持GCC编译器
- 可扩展性:易于添加新的AI算法和游戏模式 - 可扩展性:易于添加新的AI算法和游戏模式
- 部署便捷:依赖库本地化,开箱即用
5. 交付物 5. 交付物
- 源代码文件(.c/.h文件) - 源代码文件(.c/.h文件)