# dl_chess_server **Repository Path**: lveyou/dl_chess_server ## Basic Information - **Project Name**: dl_chess_server - **Description**: dl象棋服务端 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-02 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dl_chess_server #### 介绍 dl象棋服务端 - 一个基于C++的在线中国象棋游戏服务器 #### 功能特性 ##### 核心功能 - ✅ 完整的中国象棋规则实现 - ✅ 用户注册与登录系统 - ✅ 游戏房间管理 - ✅ 快速匹配系统 - ✅ 实时对战功能 - ✅ 认输与游戏结束判定 ##### 象棋规则支持 - 将/帅:九宫格内移动,支持将帅对脸 - 士/仕:九宫格内斜走 - 象/相:田字走法,不能过河,塞象眼检测 - 马/马:日字走法,蹩马腿检测 - 车/车:直线走法,吃子规则 - 炮/炮:直线走法,隔子吃子 - 兵/卒:过河前只能前进,过河后可左右移动 #### 软件架构 ``` dl_chess_server/ ├── src/ │ ├── chess_logic.h # 象棋核心逻辑 │ ├── room_manager.h # 房间管理系统 │ ├── user_manager.h # 用户管理系统 │ ├── msg_def.h # 消息协议定义 │ ├── head.h/cpp # 服务器核心实现 │ └── main.cpp # 程序入口 ├── res/ # 资源文件 ├── CMakeLists.txt # CMake构建配置 └── README.md # 项目说明 ``` #### 技术栈 - **语言**: C++17 - **构建系统**: CMake 3.12+ - **依赖库**: - dl框架:提供网络、线程、日志等基础功能 - magic_enum:枚举类型反射库 #### 安装教程 1. 确保已安装CMake 3.12或更高版本 2. 确保已安装支持C++17的编译器 3. 配置dl框架和magic_enum库 4. 构建项目: ```bash mkdir build cd build cmake .. make ``` #### 使用说明 ##### 启动服务器 ```bash ./dl_chess_server ``` 服务器将在7300端口启动监听。 ##### 控制台命令 - `exit` - 退出服务器 - `status` - 查看服务器状态(在线用户数、房间数等) ##### 客户端协议 ###### 登录相关 - `C_LOGIN` - 客户端登录请求 - 参数:账号、密码 - 响应:`S_LOGIN_OK` 或 `S_LOGIN_FAIL` ###### 房间管理 - `C_CREATE_ROOM` - 创建房间 - 响应:`S_CREATE_ROOM_OK` 或 `S_CREATE_ROOM_FAIL` - `C_JOIN_ROOM` - 加入房间 - 参数:房间ID - 响应:`S_JOIN_ROOM_OK` 或 `S_JOIN_ROOM_FAIL` - `C_LEAVE_ROOM` - 离开房间 - 响应:`S_LEAVE_ROOM_OK` - `C_QUICK_MATCH` - 快速匹配 - 响应:`S_QUICK_MATCH_OK` - `C_GET_ROOM_LIST` - 获取房间列表 - 响应:`S_ROOM_LIST` ###### 游戏操作 - `C_MOVE` - 走棋 - 参数:起点坐标、终点坐标 - 响应:`S_MOVE_OK` 或 `S_MOVE_FAIL` - `C_GAME_STATE` - 获取游戏状态 - 响应:`S_GAME_STATE` - `C_SURRENDER` - 认输 - 响应:`S_GAME_OVER` ###### 服务器通知 - `S_MOVE_NOTIFY` - 对手走棋通知 - `S_PLAYER_JOIN` - 玩家加入通知 - `S_PLAYER_LEAVE` - 玩家离开通知 - `S_GAME_OVER` - 游戏结束通知 #### 核心类说明 ##### ChessBoard 象棋棋盘类,负责: - 棋盘状态管理 - 走棋规则验证 - 游戏胜负判定 ##### GameRoom 游戏房间类,负责: - 玩家管理 - 游戏状态管理 - 房间生命周期管理 ##### RoomManager 房间管理器,负责: - 房间创建与销毁 - 玩家房间分配 - 快速匹配逻辑 ##### UserManager 用户管理器,负责: - 用户注册与登录 - 会话管理 - 用户信息维护 #### 开发计划 - [ ] 添加观战功能 - [ ] 实现聊天系统 - [ ] 添加游戏回放功能 - [ ] 实现排行榜系统 - [ ] 添加AI对战功能 - [ ] 支持数据库持久化 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 许可证 本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。