# 五子棋游戏 - 图形化界面说明 (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（推荐）

```bash
# 编译图形化版本
mingw32-make gui
```

### 方法二：手动编译

```bash
# 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\
```

## 运行方法

### 图形化版本

```bash
.\bin\gobang_gui.exe
```

或者在主菜单选择模式8启动图形化界面。

## 图形化界面功能

- **窗口大小**：800x600像素
- **棋盘显示**：15x15标准五子棋棋盘
- **鼠标操作**：点击棋盘交叉点进行落子
- **键盘操作**：
  - `ESC`：退出图形化界面返回主菜单
- **游戏状态**：
  - 实时显示当前玩家（黑子/白子）
  - 显示游戏进度和状态
  - 胜负结果提示
- **视觉效果**：
  - 清晰的黑白棋子
  - 当前玩家指示器
  - 平滑的图形渲染
- **胜负判定**：自动检测五子连珠并显示获胜者

## 故障排除

### 编译错误

1. **找不到IUP头文件**
   - 检查Makefile中的`IUP_PATH`配置是否正确指向`libs`目录

2. **链接错误**
   - 确保链接了所有必要的Windows系统库（`-lgdi32 -lcomdlg32 -lcomctl32 -luuid -lole32`）

3. **运行时错误**
   - 确保`iup.dll`位于可执行文件同级目录或系统PATH中

### 图形化界面启动失败

- 确保`iup.dll`文件在exe同目录下
- 尝试以管理员权限运行
- 确认Windows版本兼容性

### 运行时问题

- **中文乱码**：确保代码中已启用UTF-8模式 `IupSetGlobal("UTF8MODE", "YES");`
- **鼠标点击无响应**：确认点击在棋盘交叉点附近

## 使用说明

### 快速开始

1. 运行 `mingw32-make gui` 编译图形化版本
2. 运行 `bin\gobang_gui.exe` 启动程序
3. 在主菜单选择 "8. 图形化界面"
4. 使用鼠标点击棋盘进行游戏
5. 按ESC键退出图形化界面

### 游戏规则

- 黑子先行，轮流落子
- 率先形成五子连珠者获胜
- 支持横、竖、斜四个方向的连珠判定

## 开发说明

### 文件结构

- `include/gui.h` - 图形化界面头文件
- `src/gui.c` - 图形化界面实现（基于IUP）
- `src/main.c` - 主程序（已添加图形化模式）
- `Makefile` - 构建脚本

### 扩展功能

图形化界面支持进一步扩展：

- 更多IUP控件集成
- 主题切换
- 网络对战界面优化
- AI难度可视化调节

---

**注意**：首次使用图形化界面前，请确保IUP动态库已正确复制。
