Add files via upload

This commit is contained in:
2025-07-10 13:20:40 +08:00
committed by GitHub
parent b5c4a51967
commit e6b344ed39
2 changed files with 157 additions and 10 deletions
+146
View File
@@ -0,0 +1,146 @@
# 五子棋网络对战功能说明
## 功能概述
本项目新增了网络对战功能,允许两台设备通过网络进行在线五子棋对战。支持局域网和互联网连接。
## 编译方法
```bash
gcc -o gobang.exe main.c gobang.c game_mode.c ai.c record.c init_board.c ui.c config.c network.c -lws2_32
```
**注意:**
- Windows系统需要链接 `-lws2_32` 网络库
- Linux系统不需要额外的网络库链接
## 使用方法
### 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
- 游戏结束后及时关闭程序
- 注意保护个人网络信息
## 更新日志
### v1.0 (2025-01-15)
- 新增网络对战功能
- 支持TCP/IP连接
- 实现落子同步
- 添加悔棋协商机制
- 支持断线检测
- 兼容现有游戏功能(计时器、禁手规则等)
---
**开发者:** 刘航宇
**联系邮箱:** 3364451258@qq.com
**项目主页:** https://github.com/LHY0125/Gobang-Game
+11 -10
View File
@@ -5,18 +5,19 @@
![Version](https://img.shields.io/badge/version-v5.0-blue) ![Version](https://img.shields.io/badge/version-v5.0-blue)
![Platform](https://img.shields.io/badge/platform-Windows-lightgrey) ![Platform](https://img.shields.io/badge/platform-Windows-lightgrey)
> 🎯 **最新版本 v5.0** - 全面重构,新增配置管理、复盘分析、评分系统等核心功能 > 🎯 **最新版本 v6.0** - 网络功能重大更新,新增在线对战、全局变量统一管理等核心功能
## 📋 大版本更新 ## 📋 大版本更新
### v5.0 (2025-07-10) - 重大更新 ### v6.0 (2025-07-10) - 网络功能重大更新
- **新增配置管理系统** - 支持INI配置文件持久化 - 🌐 **网络对战模式** - 支持在线多人实时对战功能
- 📊 **完整复盘功能** - 逐步回放对局并提供专业评分 - 🔗 **服务器/客户端架构** - 完整的网络通信框架
- 🧠 **智能评分系统** - 每步棋评分分析和MVP评选 - 📡 **实时数据同步** - 棋盘状态和游戏进度实时同步
- 💻 **现代化UI界面** - 重新设计的用户交互界面 - 🛡️ **网络安全验证** - 基本的数据验证和防作弊检测
- 🔧 **模块化重构** - 清晰的代码架构,便于维护扩展 - 📊 **连接状态管理** - 自动断线重连和延迟显示
- **禁手规则支持** - 可选启用标准五子棋禁手规则 - 🏗️ **全局变量统一管理** - 优化代码结构和可维护性
- ⏱️ **计时器功能** - 支持每回合时间限制设置 - 🔧 **宏定义统一管理** - 消除重复定义,提高代码质量
- ⚙️ **网络配置系统** - 支持服务器地址和端口配置
## 目录 ## 目录
- [C语言五子棋人机对战AI](#c语言五子棋人机对战ai) - [C语言五子棋人机对战AI](#c语言五子棋人机对战ai)
@@ -61,7 +62,7 @@
- [🔧 技术优化](#-技术优化) - [🔧 技术优化](#-技术优化)
## 项目简介 ## 项目简介
这是一个使用C语言实现的五子棋人机对战系统,它基于 Alpha-Beta 剪枝优化的 Minimax 算法,并支持自定义棋盘大小、游戏存档和实时悔棋 这是一个使用C语言实现的现代化五子棋对战系统,支持人机对战、双人对战和网络对战三种模式。系统基于 Alpha-Beta 剪枝优化的 Minimax 算法,具备完整的配置管理、复盘分析、智能评分和网络通信功能
## 功能特性 ## 功能特性