From 1332d14347a118f638e3b479fb1f3ded475be29b Mon Sep 17 00:00:00 2001 From: LHY0125 <3364451258@qq.com> Date: Mon, 16 Mar 2026 13:26:28 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E8=87=B3v8.3=E5=B9=B6=E8=B0=83=E6=95=B4.giti?= =?UTF-8?q?gnore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新项目要求文档至v8.3版本,说明引入IUP图形库和构建系统优化 - 更新项目简介,详细说明v8.3的图形界面重构和目录结构调整 - 更新GUI说明文档,从SDL3迁移至IUP,并更新编译和运行指南 - 在.gitignore中添加obj目录,避免编译生成的对象文件被提交 --- .gitignore | 3 ++ MD/README_GUI.md | 114 +++++++++++++++++++++-------------------------- TXT/简介.txt | 49 +++++++++++--------- TXT/项目要求.txt | 18 ++++---- 4 files changed, 92 insertions(+), 92 deletions(-) diff --git a/.gitignore b/.gitignore index 5dc4b4a..aa2fd18 100644 --- a/.gitignore +++ b/.gitignore @@ -49,5 +49,8 @@ Thumbs.db # 打包文件 dist/ +# 编译生成的对象文件 +obj/ + # 临时游戏存档 *.csv \ No newline at end of file diff --git a/MD/README_GUI.md b/MD/README_GUI.md index 8b1b781..430ebe6 100644 --- a/MD/README_GUI.md +++ b/MD/README_GUI.md @@ -1,12 +1,15 @@ -# 五子棋游戏 - 图形化界面说明 (v8.0) +# 五子棋游戏 - 图形化界面说明 (v8.3) ## 概述 -v8.0版本实现了完整的双版本架构,支持两种界面模式: -- **控制台界面**:传统的文本界面,保持原有功能完整性 -- **图形化界面**:基于SDL3的现代图形界面,提供可视化操作体验 -## v8.0新增功能 -- ✅ **SDL3图形化界面**:现代化的可视化棋盘 +v8.3版本引入了基于IUP的现代化图形界面,实现了完整的双版本架构: + +- **控制台界面**:传统的文本界面,保持原有功能完整性 +- **图形化界面**:基于IUP的现代图形界面,提供可视化操作体验 + +## v8.3 新增功能 + +- ✅ **IUP图形化界面**:原生控件风格,轻量高效 - ✅ **鼠标交互支持**:点击落子,直观操作 - ✅ **窗口管理优化**:自动居中,响应式设计 - ✅ **事件驱动架构**:流畅的用户交互体验 @@ -15,73 +18,58 @@ v8.0版本实现了完整的双版本架构,支持两种界面模式: ## 环境要求 -### SDL3库配置 -1. 下载SDL3-3.2.22开发库 -2. 解压到:`D:\settings\SDL\SDL3-3.2.22\` -3. 确保目录结构如下: - ``` - D:\settings\SDL\SDL3-3.2.22\ - ├── x86_64-w64-mingw32\ - │ ├── include\ # 头文件 - │ ├── lib\ # 库文件 - │ └── bin\ # DLL文件 - └── ... - ``` +### IUP库配置 + +项目已内置IUP库(位于 `libs/iup-3.31_Win64_dllw6_lib`),无需额外安装。 ### 编译环境 -- GCC编译器(MinGW-w64)位于:`D:\Program Files\mingw64` + +- GCC编译器(MinGW-w64) +- Make工具(mingw32-make) - Windows 10/11操作系统 -- 支持OpenGL的显卡驱动 ## 编译方法 -### 方法一:使用批处理脚本(推荐) +### 方法一:使用Makefile(推荐) + ```bash # 编译图形化版本 -.\compile_gui.bat +mingw32-make gui ``` ### 方法二:手动编译 + ```bash -# 控制台版本 -gcc -std=c17 -o gobang.exe *.c -lws2_32 +# GUI版本 +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 -# 图形化版本 -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 - -# 复制SDL3.dll到当前目录 -copy "D:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\bin\SDL3.dll" . +# 复制IUP动态库到bin目录 +copy libs\iup-3.31_Win64_dllw6_lib\iup.dll bin\ ``` ## 运行方法 -### 控制台版本 -```bash -.\gobang.exe -``` -在主菜单选择模式1-7进行游戏 - ### 图形化版本 + ```bash -.\gobang_gui.exe +.\bin\gobang_gui.exe ``` -在主菜单选择模式8启动图形化界面 + +或者在主菜单选择模式8启动图形化界面。 ## 图形化界面功能 - **窗口大小**:800x600像素 -- **棋盘显示**:15x15标准五子棋棋盘,木质纹理背景 +- **棋盘显示**:15x15标准五子棋棋盘 - **鼠标操作**:点击棋盘交叉点进行落子 - **键盘操作**: - `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库路径是否正确 - - 确保include目录存在 + +1. **找不到IUP头文件** + - 检查Makefile中的`IUP_PATH`配置是否正确指向`libs`目录 2. **链接错误** - - 检查lib目录是否存在 - - 确保SDL3.lib文件存在 + - 确保链接了所有必要的Windows系统库(`-lgdi32 -lcomdlg32 -lcomctl32 -luuid -lole32`) 3. **运行时错误** - - 确保SDL3.dll在系统PATH中或与exe文件同目录 + - 确保`iup.dll`位于可执行文件同级目录或系统PATH中 ### 图形化界面启动失败 -- 检查SDL3库是否正确安装在指定路径 -- 确保SDL3.dll文件在exe同目录下 -- 检查显卡驱动是否支持OpenGL + +- 确保`iup.dll`文件在exe同目录下 - 尝试以管理员权限运行 - 确认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. 图形化界面" 4. 使用鼠标点击棋盘进行游戏 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` - 图形化界面实现 -- `main.c` - 主程序(已添加图形化模式) -- `compile_gui.bat` - 图形化版本编译脚本 + +- `include/gui.h` - 图形化界面头文件 +- `src/gui.c` - 图形化界面实现(基于IUP) +- `src/main.c` - 主程序(已添加图形化模式) +- `Makefile` - 构建脚本 ### 扩展功能 + 图形化界面支持进一步扩展: -- 音效支持 -- 动画效果 + +- 更多IUP控件集成 - 主题切换 -- 网络对战界面 +- 网络对战界面优化 - AI难度可视化调节 --- -**注意**:首次使用图形化界面前,请确保SDL3库已正确配置。 \ No newline at end of file +**注意**:首次使用图形化界面前,请确保IUP动态库已正确复制。 diff --git a/TXT/简介.txt b/TXT/简介.txt index 21dd3cd..7916380 100644 --- a/TXT/简介.txt +++ b/TXT/简介.txt @@ -1,12 +1,18 @@ /** * @file 五子棋对战系统 * @brief C语言五子棋多模式对战系统 - * @details 支持人机对战、双人对战、网络对战的完整五子棋游戏系统,v8.0新增SDL3图形化界面 + * @details 支持人机对战、双人对战、网络对战的完整五子棋游戏系统,v8.3新增IUP图形化界面 * @author 刘航宇(3364451258@qq.com、15236416560@163.com、lhy3364451258@outlook.com) - * @date 2025-10-8 - * @version 8.2 + * @date 2026-03-16 + * @version 8.3 * @note - * 1. v8.2专业安装包: + * 1. v8.3 图形界面重构: + * - 🎨 IUP图形化界面:迁移至轻量级IUP库,无需复杂配置即可运行 + * - 🏗️ 构建系统优化:引入Makefile,实现标准化编译流程 + * - 📂 目录结构重构:分离src、obj、bin目录,项目结构更清晰 + * - 🌐 本地化资源:集成第三方库到libs目录,实现开箱即用 + * + * 2. v8.2专业安装包: * - 📦 双重打包方案:支持Inno Setup和NSIS两种安装包制作 * - 🚀 一键安装部署:完整的软件分发解决方案 * - 🔧 安装程序优化:自动创建快捷方式和注册表项 @@ -14,15 +20,14 @@ * - 🔄 完整卸载功能:支持干净的软件卸载和清理 * - 💼 产品化部署:从开发工具向商业软件的转变 * - * 2. v8.0图形化界面: - * - 🎨 SDL3图形化界面:实现现代化可视化棋盘界面 + * 3. v8.0图形化界面: + * - 🎨 SDL3图形化界面:实现现代化可视化棋盘界面(已废弃,迁移至IUP) * - 🖱️ 鼠标交互支持:直观的点击落子操作 * - 🏗️ 双版本架构:控制台版本和GUI版本并行支持 * - 🪟 窗口管理优化:自动居中、响应式设计 * - ⚡ 事件驱动架构:流畅的用户交互体验 - * - 🔧 编译脚本优化:简化GUI版本编译流程 * - 🌐 GUI网络支持:图形化界面支持网络对战 - * 2. v7.0架构重构: + * 4. v7.0架构重构: * - 🏗️ 代码架构全面重构,实现模块化设计 * - 📋 配置参数统一管理,所有配置集中到config.h * - 🔧 全局变量规范化,统一在globals模块管理 @@ -30,7 +35,7 @@ * - 🌐 网络配置重构,从network.h迁移到config.h * - 🔄 消除重复定义,提高代码一致性 * - 📚 完善文档体系,新增架构重构指南 - * 2. v6.1完善功能: + * 5. v6.1完善功能: * - 🌐 完善的网络对战模式,支持服务器/客户端架构 * - 🔗 实时数据同步,支持落子、悔棋、认输等网络功能 * - 🛡️ 网络安全验证和连接状态管理 @@ -38,66 +43,66 @@ * - 🔧 全局变量统一管理,优化代码结构 * - 📋 宏定义统一管理,消除重复定义 * - 🔄 网络协议优化,改进通信稳定性 - * 2. 核心游戏功能: + * 6. 核心游戏功能: * - 增加了对禁手规则的支持,防止玩家进行无意义的走法。 * - 新增了游戏计时器功能,限制每回合的思考时间。 * - 添加了复盘功能,支持保存和回顾对局记录。 * - 实现了评分系统,可以对每一步棋进行评分和分析。 - * 3. 性能优化: + * 7. 性能优化: * - 🚀 优化了AI算法,使用Alpha-Beta剪枝提高搜索效率 * - 🎨 改进了棋盘渲染算法,减少了不必要的重绘操作 * - 💾 增加了内存管理优化,避免内存泄漏问题 * - ⚡ 网络通信优化,支持异步消息处理 * - 🔍 智能评分算法优化,提升AI决策质量 - * 4. 用户界面改进: + * 8. 用户界面改进: * - 🎮 美化了游戏界面,增加了更多的视觉效果 * - ⌨️ 改进了用户交互体验,增加了快捷键支持 * - 🔊 添加了音效和背景音乐,提升游戏沉浸感 * - 💬 网络对战聊天界面,支持实时交流 * - 📊 游戏状态显示优化,清晰展示连接状态 - * 5. 代码结构优化: + * 9. 代码结构优化: * - 🏗️ 重构了代码架构,提高了代码的可读性和可维护性 * - 📝 增加了详细的注释和文档,便于理解和修改 * - 🧩 采用了模块化设计,各功能模块相对独立 * - 🌍 新增网络模块,完整的网络通信架构 * - 🔧 全局状态统一管理,消除代码重复 * - 📋 配置文件标准化,支持灵活配置 - * 6. 异常处理: + * 10. 异常处理: * - 🛡️ 增加了输入错误的异常处理机制,确保游戏的稳定性 * - 💡 优化了错误提示信息,帮助用户快速定位问题 * - 🔄 增加了程序崩溃恢复功能,提高游戏的可靠性 * - 🌐 网络连接异常处理,自动重连和超时管理 * - 📡 消息传输错误处理,确保数据完整性 - * 7. 文档更新: + * 11. 文档更新: * - 📚 更新了README文件,提供详细的安装和使用说明 * - 💬 增加了代码注释,提高代码的可读性 * - 👨‍💻 添加了开发者文档,便于后续的功能扩展 * - 🌐 新增网络对战使用指南和配置说明 * - 🔧 API文档完善,支持二次开发 - * 8. 版本控制: + * 12. 版本控制: * - 📦 使用Git进行版本控制,便于代码管理和协作开发 * - 🚀 建立了清晰的版本发布流程,确保代码质量 * - 🏷️ v7.0版本更新,代码架构全面重构 - - 🏷️ v6.1版本更新,网络功能完善优化 + * - 🏷️ v6.1版本更新,网络功能完善优化 * - 📋 完整的变更日志,追踪功能演进 - * 9. 测试: + * 13. 测试: * - ✅ 进行了全面的功能测试,确保各项功能正常运行 * - 🧪 增加了单元测试,提高代码的可靠性 * - ⚡ 进行了性能测试,优化了程序的运行效率 * - 🌐 网络功能压力测试,确保多人对战稳定性 * - 🔒 安全性测试,验证网络通信安全 * - 🔄 协议兼容性测试,确保通信协议稳定 - * 10. 开源协议: + * 14. 开源协议: * - 📄 选择了MIT开源协议,允许用户自由使用、修改和分发代码 * - 🤝 欢迎社区贡献,共同完善项目 - * 11. 贡献者: + * 15. 贡献者: * - 👨‍💻 感谢所有为项目做出贡献的开发者和用户 * - 🌟 特别感谢网络功能开发、测试和优化的贡献者 - * 12. 联系信息: + * 16. 联系信息: * - 📧 如有问题或建议,请联系开发者: * - 3364451258@qq.com * - 15236416560@163.com * - lhy3364451258@outlook.com * - 🐛 Bug报告和功能建议欢迎通过邮件反馈 * - 💡 网络对战相关问题请详细描述网络环境和连接状态 - */ \ No newline at end of file + */ diff --git a/TXT/项目要求.txt b/TXT/项目要求.txt index 3e6c744..4a5adbc 100644 --- a/TXT/项目要求.txt +++ b/TXT/项目要求.txt @@ -1,10 +1,10 @@ -项目要求文档 - 五子棋游戏 (v8.2) +项目要求文档 - 五子棋游戏 (v8.3) 1. 项目概述 - 开发一个基于C语言的五子棋游戏,支持本地多人、AI对战和网络对战模式。 - - v8.0版本实现双版本架构:支持命令行界面和SDL3图形化界面。 - - v8.2版本(当前版本)完善了专业安装包制作体系,提供企业级的软件分发解决方案。 - - v8.2版本完善了软件分发体系,支持Inno Setup和NSIS双重安装包制作,提供专业级的软件打包和部署解决方案。 + - v8.3版本(当前版本)引入了IUP图形库,实现了轻量级、跨平台的图形界面。 + - v8.2版本完善了专业安装包制作体系,提供企业级的软件分发解决方案。 + - v8.0版本实现双版本架构:支持命令行界面和GUI图形化界面。 - 包括游戏配置、记录保存、复盘功能和专业安装包。 - 提供现代化的可视化用户体验和传统控制台体验。 @@ -32,7 +32,7 @@ - 记录包含时间戳、玩家信息、棋局步骤等 - **用户界面**: - **控制台界面**:传统命令行界面显示棋盘 - - **图形化界面**(v8.0新增):基于SDL3的现代化GUI界面 + - **图形化界面**(v8.3新增IUP):基于IUP的轻量级GUI界面 - **鼠标交互**:支持点击落子操作 - **窗口管理**:自动居中、响应式设计 - **事件驱动**:流畅的用户交互体验 @@ -48,10 +48,11 @@ 3. 技术要求 - 使用C语言开发 - Windows平台,包含Winsock网络库(-lws2_32链接) - - **SDL3图形库**(v8.0新增):用于GUI界面开发 + - **IUP图形库**(v8.3新增):用于GUI界面开发,替代原SDL3方案 - **双版本架构**:控制台版本和GUI版本并行支持 - 模块化设计:分离游戏逻辑、AI、配置、网络、UI、GUI等模块 - - **安装包制作**:支持Inno Setup专业安装程序 + - **安装包制作**:支持Inno Setup和NSIS专业安装程序 + - **构建系统**:使用Makefile管理编译流程 - 错误处理和统一的输入验证 - 支持跨平台编译(Windows/Linux) @@ -60,10 +61,11 @@ - 可维护性:代码模块化,注释清晰 - 兼容性:Windows 11,支持GCC编译器 - 可扩展性:易于添加新的AI算法和游戏模式 + - 部署便捷:依赖库本地化,开箱即用 5. 交付物 - 源代码文件(.c/.h文件) - 配置文件(gobang_config.ini) - 记录文件夹(records/) - 文档:README.md、AI增强指南、架构重构指南、网络功能说明、图标指南等 - - 代码统计报告和项目简介 \ No newline at end of file + - 代码统计报告和项目简介