# 五子棋网络对战使用说明

## 功能概述

本项目支持网络对战功能，允许两台设备通过网络进行实时五子棋对战，支持服务器/客户端连接。v8.0版本新增了GUI界面的网络对战支持，提供更直观的可视化网络游戏体验。

### v8.2 (2025-10-08)
- 专业安装包制作 - 支持Inno Setup和NSIS双重安装方案
- 安装程序优化 - 完整的文件打包和快捷方式创建
- 分发体系完善 - 提供标准化的软件分发解决方案
- 用户体验提升 - 一键安装部署，支持完整卸载功能

## 编译方法

### 控制台版本
```bash
gcc -std=c17 -o gobang.exe *.c -lws2_32
```

### GUI版本
```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` 链接库
- GUI版本需要SDL3库支持
- Linux系统不需要ws2_32链接库参数

## 使用方法

### 1. 启动游戏
运行编译后的程序
```bash
.\gobang.exe
```

### 2. 选择网络对战模式
在主菜单中选择 `3. 网络对战`

### 3. 选择连接模式

#### 模式1：创建房间（作为服务器）
- 选择 `1. 创建房间（作为服务器）`
- 输入监听端口（默认8888，建议使用1024-65535范围内的端口）
- 程序会显示本机IP地址，将此IP告知对方
- 等待对方连接

#### 模式2：加入房间（连接到服务器）
- 选择 `2. 加入房间（连接到服务器）`
- 输入服务器IP地址
- 输入服务器的端口号（与服务器设置的端口一致）
- 连接到服务器

### 4. 开始游戏
- 连接成功后游戏自动开始
- 服务器为玩家1（黑棋），客户端为玩家2（白棋）
- 玩家1先手

## 游戏操作

### 基本操作
- **落子**：输入坐标 `行号 列号`，例如：`7 7`
- **认输**：输入 `S` 或 `s`
- **悔棋**：输入 `R` 或 `r`（需要对方同意）

### 网络功能
- **自动同步**：落子操作会自动同步给对方
- **连接检测**：自动检测网络连接状态
- **延时显示**：支持回合延时显示，避免过快操作
- **悔棋协商**：悔棋需要对方同意才能生效

## 网络配置

### 端口设置
- 默认端口：8888
- 可设端口范围：1024-65535
- 确保防火墙允许选定端口的通信

### IP地址
- **局域网**：使用内网IP地址，例如：192.168.1.100
- **广域网**：使用公网IP地址，可能需要路由器端口转发

### 防火墙设置
如果连接失败，请检查防火墙设置：

#### Windows防火墙
1. 打开Windows安全中心
2. 选择"防火墙和网络保护"
3. 选择"允许应用通过防火墙"
4. 添加gobang.exe到允许列表

#### 路由器设置（用于广域网对战）
如果通过互联网对战，可能需要：
1. 在路由器中设置端口转发
2. 将选定端口转发到服务器内网IP
3. 将路由器的公网IP告知对方

## 故障排除

### 常见问题

1. **连接失败**
   - 检查IP地址和端口是否正确
   - 确认防火墙设置
   - 确保两台设备网络连通

2. **游戏中断**
   - 检查网络连接稳定性
   - 重新启动游戏重新连接

3. **端口被占用**
   - 更换其他端口号
   - 关闭占用端口的其他程序

### 网络测试
可以使用以下命令测试网络连通性：
```bash
# 测试网络连通
ping <对方IP地址>

# 测试端口（需要telnet客户端）
telnet <对方IP地址> <端口号>
```

## 技术细节

- **协议**：TCP/IP
- **消息格式**：自定义二进制协议
- **支持功能**：
  - 棋盘同步
  - 悔棋处理
  - 认输协商
  - 连接检测
  - 延时控制

## 安全注意事项

1. **局域网使用**：建议安全的家庭或办公环境
2. **广域网使用**：
   - 不要使用默认端口8888
   - 游戏结束后及时关闭程序
   - 注意保护个人网络信息



**开发者：** 刘航宇  
**联系邮箱：** 3364451258@qq.com  
**项目主页：** https://github.com/LHY0125/Gobang-Game