在线五子棋项目
一、立项背景和目标
当前线上休闲对战类游戏多依赖高成本框架开发,轻量级五子棋对战平台的需求尚未充分满足。本项目旨在基于 Linux 环境,以 C++11 为核心技术栈,搭建一款低耦合、高实时性的在线五子棋系统,实现用户管理、天梯匹配、实时对战等功能,同时兼顾性能与交互体验,为开发者提供轻量级游戏服务的参考范式。
二、软件功能、核心功能模块的介绍
用户管理模块:支持用户注册、登录、信息查询与天梯分数管理,通过 MySQL 存储用户数据,MD5 加密保障密码安全,胜利 + 30 分、失败 - 30 分的规则同步更新战绩。
在线连接管理模块:以unordered_map维护游戏大厅、房间的用户 WebSocket 连接,保证同一用户仅存在于一个场景,支持连接的增删查改与并发安全。
游戏房间模块:维护 15×15 棋盘数据,实现五子连珠检测(横向、纵向、双对角线),处理下棋、聊天、玩家掉线等逻辑,敏感词过滤与胜负判定自动触发天梯更新。
匹配模块:按天梯分数分档(普通 < 2000 分、高手 2000-3000 分、大神≥3000 分)设计匹配队列,生产消费者模型实现异步匹配,人数达标后自动创建房间。
会话管理模块:基于 WebSocket 定时器实现 Session 生命周期管控,未登录状态 30 秒超时,进入游戏场景后设为永久有效,通过 Cookie 传递 SessionID 维持登录状态。
三、业务流程、功能路径描述
用户注册 / 登录:前端通过 AJAX 提交账号密码,后端校验后完成注册 / 登录,返回 SessionID 并写入 Cookie,跳转至游戏大厅。
匹配对战:用户在大厅点击 “开始匹配”,请求通过 WebSocket 发送至后端匹配队列;队列人数达标后,校验玩家在线状态,创建房间并推送匹配成功消息,前端跳转至游戏房间。
实时对战:玩家在房间点击棋盘提交下棋请求,后端校验位置合法性后更新棋盘,检测五子连珠判定胜负,同步推送结果至双方客户端;聊天消息经敏感词过滤后广播至房间。
场景切换:玩家退出房间后,后端移除其房间连接,恢复 Session 超时机制;退出大厅则断开 WebSocket 连接,Session 在 30 秒后自动销毁。
游戏/电竞