v8.0版本更新:添加SDL3图形化界面功能和完善文档

This commit is contained in:
2025-09-18 19:08:37 +08:00
parent 1d8e2e25cf
commit 0e53b09d9b
16 changed files with 827 additions and 100 deletions
+4 -2
View File
@@ -1,8 +1,8 @@
# 🚀 五子棋AI增强指南
# 🚀 五子棋AI增强指南 (v8.0)
## 📋 概述
本文档详细介绍了提升五子棋AI水平的各种方法和实现策略,基于当前项目的代码架构,提供从简单参数调优到复杂算法改进的完整方案。
本文档详细介绍了提升五子棋AI水平的各种方法和实现策略,基于当前项目的代码架构v8.0,提供从简单参数调优到复杂算法改进的完整方案。v8.0版本新增了GUI界面支持,为AI可视化分析和用户交互提供了更好的平台。
## 🎯 当前AI分析
@@ -12,6 +12,8 @@
- ✅ 完整的棋型评估系统
- ✅ 威胁检测机制
- ✅ 防御优先策略
- ✅ SDL3图形化界面支持AI可视化分析
- ✅ 双版本架构(控制台+GUI)提供更好的调试环境
### 改进空间
- 🔄 搜索深度有限(当前3层)
+12 -2
View File
@@ -1,7 +1,7 @@
# 🧠 五子棋AI实现详解
# 🧠 五子棋AI实现详解 (v8.0)
## 📜 算法概述
本五子棋AI采用α-β剪枝优化的极小极大算法,结合专业的棋型评估系统和多层次的威胁检测机制。支持人机对战、双人对战和网络对战多种模式。
本五子棋AI采用α-β剪枝优化的极小极大算法,结合专业的棋型评估系统和多层次的威胁检测机制。v8.0版本新增SDL3图形化界面支持,提供可视化AI决策过程和双版本架构(控制台+GUI)。支持人机对战、双人对战和网络对战多种模式。
```mermaid
graph TD
@@ -48,6 +48,16 @@ void network_ai_move(int depth, int player_id);
void sync_ai_decision(int x, int y);
```
### 🎨 GUI界面AI支持 (v8.0新增)
```c
// GUI模式下的AI可视化决策
void gui_ai_move_with_animation(int x, int y);
// 显示AI思考过程
void show_ai_thinking_process(SDL_Renderer* renderer);
// AI决策结果的图形化展示
void render_ai_decision_info(SDL_Renderer* renderer, int score, int depth);
```
## ⚙️ 核心函数
### 1. ai_move(int depth)
+4 -2
View File
@@ -1,8 +1,8 @@
# 五子棋项目代码架构重构指南
# 五子棋项目代码架构重构指南 (v8.0)
## 📋 概述
本文档详细记录了五子棋项目在v7.0版本中进行的重大代码架构重构,包括重构的目标、实施过程、技术细节和带来的改进。
本文档详细记录了五子棋项目在v7.0-v8.0版本中进行的重大代码架构重构,包括重构的目标、实施过程、技术细节和带来的改进。v8.0版本新增了SDL3图形化界面模块,实现了双版本架构设计。
## 🎯 重构目标
@@ -12,6 +12,8 @@
3. **全局变量规范化** - 统一管理全局变量,避免散乱分布
4. **类型定义标准化** - 集中定义所有数据结构和类型
5. **提升可维护性** - 降低代码耦合度,提高可读性和可维护性
6. **双版本架构** - (v8.0新增) 实现控制台版本和GUI版本的并行支持
7. **图形化界面集成** - (v8.0新增) 无缝集成SDL3图形库,提供现代化用户界面
### 预期收益
- 减少代码重复和冗余
+17 -3
View File
@@ -1,18 +1,32 @@
# 五子棋网络对战使用说明
# 五子棋网络对战使用说明 (v8.0)
## 功能概述
本项目支持网络对战功能,允许两台设备通过网络进行实时五子棋对战,支持服务器/客户端连接。
本项目支持网络对战功能,允许两台设备通过网络进行实时五子棋对战,支持服务器/客户端连接。v8.0版本新增了GUI界面的网络对战支持,提供更直观的可视化网络游戏体验。
## v8.0网络功能增强
-**GUI网络对战**:图形化界面支持网络游戏
-**可视化连接状态**:实时显示网络连接状态
-**双版本网络支持**:控制台和GUI版本均支持网络功能
-**网络状态指示**:图形化显示连接、等待、游戏状态
## 编译方法
### 控制台版本
```bash
gcc -std=c17 -o gobang.exe *.c -lws2_32
```
### GUI版本(v8.0新增)
```bash
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 "D:\settings\SDL\SDL3-3.2.22\x86_64-w64-mingw32\bin\SDL3.dll" .
```
**注意:**
- Windows系统需要添加 `-lws2_32` 链接库
- Linux系统不需要此链接库参数
- GUI版本需要SDL3库支持
- Linux系统不需要ws2_32链接库参数
## 使用方法
+147
View File
@@ -0,0 +1,147 @@
# 五子棋游戏 - 图形化界面说明 (v8.0)
## 概述
v8.0版本实现了完整的双版本架构,支持两种界面模式:
- **控制台界面**:传统的文本界面,保持原有功能完整性
- **图形化界面**:基于SDL3的现代图形界面,提供可视化操作体验
## v8.0新增功能
-**SDL3图形化界面**:现代化的可视化棋盘
-**鼠标交互支持**:点击落子,直观操作
-**窗口管理优化**:自动居中,响应式设计
-**事件驱动架构**:流畅的用户交互体验
-**安装包支持**:提供专业的安装程序
-**双版本并行**:控制台和GUI版本独立运行
## 环境要求
### 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文件
└── ...
```
### 编译环境
- GCC编译器(MinGW-w64)位于:`D:\Program Files\mingw64`
- Windows 10/11操作系统
- 支持OpenGL的显卡驱动
## 编译方法
### 方法一:使用批处理脚本(推荐)
```bash
# 编译图形化版本
.\compile_gui.bat
```
### 方法二:手动编译
```bash
# 控制台版本
gcc -std=c17 -o gobang.exe *.c -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" .
```
## 运行方法
### 控制台版本
```bash
.\gobang.exe
```
在主菜单选择模式1-7进行游戏
### 图形化版本
```bash
.\gobang_gui.exe
```
在主菜单选择模式8启动图形化界面
## 图形化界面功能
- **窗口大小**800x600像素
- **棋盘显示**:15x15标准五子棋棋盘,木质纹理背景
- **鼠标操作**:点击棋盘交叉点进行落子
- **键盘操作**
- `ESC`:退出图形化界面返回主菜单
- `R`:重新开始游戏
- `U`:撤销上一步(如果支持)
- **游戏状态**
- 实时显示当前玩家(黑子/白子)
- 显示游戏进度和状态
- 胜负结果提示
- **视觉效果**
- 黑白棋子带阴影效果
- 当前玩家指示器
- 平滑的图形渲染
- **胜负判定**:自动检测五子连珠并显示获胜者
## 故障排除
### 编译错误
1. **找不到SDL3头文件**
- 检查SDL3库路径是否正确
- 确保include目录存在
2. **链接错误**
- 检查lib目录是否存在
- 确保SDL3.lib文件存在
3. **运行时错误**
- 确保SDL3.dll在系统PATH中或与exe文件同目录
### 图形化界面启动失败
- 检查SDL3库是否正确安装在指定路径
- 确保SDL3.dll文件在exe同目录下
- 检查显卡驱动是否支持OpenGL
- 尝试以管理员权限运行
- 确认Windows版本兼容性
### 运行时问题
- **窗口无法显示**:检查显示器分辨率设置
- **鼠标点击无响应**:确认点击在棋盘交叉点附近
- **游戏卡顿**:关闭其他占用GPU的程序
## 使用说明
### 快速开始
1. 运行 `compile_gui.bat` 编译图形化版本
2. 运行 `gobang_gui.exe` 启动程序
3. 在主菜单选择 "8. 图形化界面"
4. 使用鼠标点击棋盘进行游戏
5. 按ESC键退出图形化界面
### 游戏规则
- 黑子先行,轮流落子
- 率先形成五子连珠者获胜
- 支持横、竖、斜四个方向的连珠判定
## 开发说明
### 文件结构
- `gui.h` - 图形化界面头文件
- `gui.c` - 图形化界面实现
- `main.c` - 主程序(已添加图形化模式)
- `compile_gui.bat` - 图形化版本编译脚本
### 扩展功能
图形化界面支持进一步扩展:
- 音效支持
- 动画效果
- 主题切换
- 网络对战界面
- AI难度可视化调节
---
**注意**:首次使用图形化界面前,请确保SDL3库已正确配置。