mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-05-10 02:19:46 +08:00
1332d14347
- 更新项目要求文档至v8.3版本,说明引入IUP图形库和构建系统优化 - 更新项目简介,详细说明v8.3的图形界面重构和目录结构调整 - 更新GUI说明文档,从SDL3迁移至IUP,并更新编译和运行指南 - 在.gitignore中添加obj目录,避免编译生成的对象文件被提交
3.5 KiB
3.5 KiB
五子棋游戏 - 图形化界面说明 (v8.3)
概述
v8.3版本引入了基于IUP的现代化图形界面,实现了完整的双版本架构:
- 控制台界面:传统的文本界面,保持原有功能完整性
- 图形化界面:基于IUP的现代图形界面,提供可视化操作体验
v8.3 新增功能
- ✅ IUP图形化界面:原生控件风格,轻量高效
- ✅ 鼠标交互支持:点击落子,直观操作
- ✅ 窗口管理优化:自动居中,响应式设计
- ✅ 事件驱动架构:流畅的用户交互体验
- ✅ 安装包支持:提供专业的安装程序
- ✅ 双版本并行:控制台和GUI版本独立运行
环境要求
IUP库配置
项目已内置IUP库(位于 libs/iup-3.31_Win64_dllw6_lib),无需额外安装。
编译环境
- GCC编译器(MinGW-w64)
- Make工具(mingw32-make)
- Windows 10/11操作系统
编译方法
方法一:使用Makefile(推荐)
# 编译图形化版本
mingw32-make gui
方法二:手动编译
# 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
# 复制IUP动态库到bin目录
copy libs\iup-3.31_Win64_dllw6_lib\iup.dll bin\
运行方法
图形化版本
.\bin\gobang_gui.exe
或者在主菜单选择模式8启动图形化界面。
图形化界面功能
- 窗口大小:800x600像素
- 棋盘显示:15x15标准五子棋棋盘
- 鼠标操作:点击棋盘交叉点进行落子
- 键盘操作:
ESC:退出图形化界面返回主菜单
- 游戏状态:
- 实时显示当前玩家(黑子/白子)
- 显示游戏进度和状态
- 胜负结果提示
- 视觉效果:
- 清晰的黑白棋子
- 当前玩家指示器
- 平滑的图形渲染
- 胜负判定:自动检测五子连珠并显示获胜者
故障排除
编译错误
-
找不到IUP头文件
- 检查Makefile中的
IUP_PATH配置是否正确指向libs目录
- 检查Makefile中的
-
链接错误
- 确保链接了所有必要的Windows系统库(
-lgdi32 -lcomdlg32 -lcomctl32 -luuid -lole32)
- 确保链接了所有必要的Windows系统库(
-
运行时错误
- 确保
iup.dll位于可执行文件同级目录或系统PATH中
- 确保
图形化界面启动失败
- 确保
iup.dll文件在exe同目录下 - 尝试以管理员权限运行
- 确认Windows版本兼容性
运行时问题
- 中文乱码:确保代码中已启用UTF-8模式
IupSetGlobal("UTF8MODE", "YES"); - 鼠标点击无响应:确认点击在棋盘交叉点附近
使用说明
快速开始
- 运行
mingw32-make gui编译图形化版本 - 运行
bin\gobang_gui.exe启动程序 - 在主菜单选择 "8. 图形化界面"
- 使用鼠标点击棋盘进行游戏
- 按ESC键退出图形化界面
游戏规则
- 黑子先行,轮流落子
- 率先形成五子连珠者获胜
- 支持横、竖、斜四个方向的连珠判定
开发说明
文件结构
include/gui.h- 图形化界面头文件src/gui.c- 图形化界面实现(基于IUP)src/main.c- 主程序(已添加图形化模式)Makefile- 构建脚本
扩展功能
图形化界面支持进一步扩展:
- 更多IUP控件集成
- 主题切换
- 网络对战界面优化
- AI难度可视化调节
注意:首次使用图形化界面前,请确保IUP动态库已正确复制。