mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-05-10 02:19:46 +08:00
166 lines
4.6 KiB
Markdown
166 lines
4.6 KiB
Markdown
# 五子棋网络对战使用说明 (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` 链接库
|
||
- 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
|
||
- 游戏结束后及时关闭程序
|
||
- 注意保护个人网络信息
|
||
|
||
## 更新日志
|
||
|
||
### v7.0 (2025-07-20)
|
||
- 网络配置参数统一管理 - 所有网络相关配置集中到config.h
|
||
- 消息类型定义优化 - 统一消息协议宏定义
|
||
- 代码架构重构 - 提升网络模块的可维护性
|
||
- 配置文件支持 - 网络参数可通过配置文件调整
|
||
|
||
### v6.1 (2025-07-10)
|
||
- 完善网络对战功能
|
||
- 支持TCP/IP通信
|
||
- 实现棋盘同步
|
||
- 连接状态和协议优化
|
||
- 支持多种操作
|
||
- 添加延时控制等游戏功能(延时显示、认输、悔棋等)
|
||
|
||
---
|
||
|
||
**开发者:** 刘航宇
|
||
**联系邮箱:** 3364451258@qq.com
|
||
**项目主页:** https://github.com/LHY0125/Gobang-Game |