mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-05-10 02:19:46 +08:00
docs: 更新项目文档至v8.3并调整.gitignore
- 更新项目要求文档至v8.3版本,说明引入IUP图形库和构建系统优化 - 更新项目简介,详细说明v8.3的图形界面重构和目录结构调整 - 更新GUI说明文档,从SDL3迁移至IUP,并更新编译和运行指南 - 在.gitignore中添加obj目录,避免编译生成的对象文件被提交
This commit is contained in:
@@ -49,5 +49,8 @@ Thumbs.db
|
||||
# 打包文件
|
||||
dist/
|
||||
|
||||
# 编译生成的对象文件
|
||||
obj/
|
||||
|
||||
# 临时游戏存档
|
||||
*.csv
|
||||
+52
-62
@@ -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库已正确配置。
|
||||
**注意**:首次使用图形化界面前,请确保IUP动态库已正确复制。
|
||||
|
||||
+26
-21
@@ -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,62 +43,62 @@
|
||||
* - 🔧 全局变量统一管理,优化代码结构
|
||||
* - 📋 宏定义统一管理,消除重复定义
|
||||
* - 🔄 网络协议优化,改进通信稳定性
|
||||
* 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
|
||||
|
||||
+9
-7
@@ -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,6 +61,7 @@
|
||||
- 可维护性:代码模块化,注释清晰
|
||||
- 兼容性:Windows 11,支持GCC编译器
|
||||
- 可扩展性:易于添加新的AI算法和游戏模式
|
||||
- 部署便捷:依赖库本地化,开箱即用
|
||||
|
||||
5. 交付物
|
||||
- 源代码文件(.c/.h文件)
|
||||
|
||||
Reference in New Issue
Block a user