# 德州扑克完整项目源码开源 **Repository Path**: digitalduckling/pokerstar ## Basic Information - **Project Name**: 德州扑克完整项目源码开源 - **Description**: 德州源码,德州扑克源码,德州俱乐部源码,基于 Unity 客户端和 C++ 服务端的 Texas Hold'em 技术示例,包含牌局接口、俱乐部、联盟、牌桌及 Redis 数据访问模块 - **Primary Language**: C/C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 4 - **Created**: 2025-07-22 - **Last Updated**: 2026-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: 德州扑克源码, 德州源码, 德州俱乐部, 德州游戏源码, Texas-Holdem ## README # Unity + C++ 德州扑克开源|德州俱乐部 |德州私人局 PokerStar 是一个面向技术学习、游戏规则研究和二次开发的 Texas Hold'em(德州)示例项目。项目包含部分 C++ 数据访问代码、配置服务代码、组织关系管理接口、定时流程接口以及 Unity 场景元数据。 > 本项目仅用于软件开发、游戏规则研究和技术交流,使用者应遵守所在国家或地区的法律法规,并自行完成内容合规、未成年人保护、隐私和数据安全评估。 [![License](https://img.shields.io/badge/license-MulanPSL--2.0-blue.svg)](LICENSE) [![Language](https://img.shields.io/badge/language-C%2B%2B-00599C.svg)](#技术方向) [![Client](https://img.shields.io/badge/client-Unity%20metadata-222C37.svg)](#公开内容) ## 项目简介 PokerStar 以 Unity 客户端和 C++ 服务端为主要技术方向,围绕多人房间、牌桌状态、用户资料、俱乐部、联盟以及数据缓存等模块组织代码。当前公开仓库更适合作为服务端模块和数据访问层的参考实现,而不是可以直接编译发布的完整产品。 仓库中可以直接确认的代码包括: - 俱乐部创建、资料修改、成员管理、职位检查和加入申请; - 联盟信息、联盟成员、联盟申请以及相关 Redis 缓存操作; - 俱乐部牌桌列表、牌桌状态更新、牌桌统计和联盟牌桌查询; - 玩家昵称、头像、VIP 等级、账号状态和登录信息读取; - 牌局开始计时、结束计时、发牌、庄家、结算等游戏逻辑接口; - 基于 TARS 风格服务接口的配置加载、数据库初始化和动态重载; - MySQL/数据库代理与 Redis 读写相关的数据访问逻辑。 ## 公开内容 ### 配置服务 `ConfigServer.cpp` 展示服务初始化、外部对象创建、数据库连接初始化以及动态配置重载入口。代码中注册了服务接口,并为服务配置和数据配置提供独立的刷新命令。 ### 组织关系数据 `ManageClubDB.cpp/.h` 和 `ManageUnionDB.cpp/.h` 展示组织资料、成员关系、职位、申请记录和缓存访问方式。这里的 Club 和 Union 是代码中的领域模型名称,适合用于研究多级组织和权限数据结构。 ### 房间状态数据 `ManageTableDB.cpp/.h` 展示房间列表、状态更新、数量统计和组织关联查询。数据请求通过代理接口发送,不在业务模块中直接建立数据库连接。 ### 用户数据 `ManageUserDB.cpp/.h` 包含用户昵称、头像、等级、登录信息和账号状态等查询接口,可作为跨服务读取用户资料的参考。 ### 通用工具 `ManageTool.cpp/.h` 包含通用数据修改及缓存读写相关逻辑。`LogComm.h` 提供日志辅助定义。 ### 流程接口 `begintimer`、`endtimer`、`gamecalculate`、`gameend` 等文件定义了回合开始、结束和状态计算相关接口。当前仓库没有包含这些接口所需的全部实现与依赖。 ## 模块关系 ```mermaid flowchart TB CLIENT[客户端或测试工具] --> ACCESS[接入与业务服务] ACCESS --> USER[用户模块] ACCESS --> ORG[组织与成员模块] ACCESS --> ROOM[房间状态模块] ACCESS --> CONFIG[配置服务] USER --> AGENT[数据代理] ORG --> AGENT ROOM --> AGENT CONFIG --> AGENT AGENT --> DB[(关系数据库)] AGENT --> CACHE[(缓存服务)] ``` ### 主要文件 | 文件 | 作用 | | --- | --- | | `ManageClubDB.cpp/.h` | 俱乐部、成员、职位和申请的数据操作 | | `ManageUnionDB.cpp/.h` | 联盟、联盟成员、申请和缓存的数据操作 | | `ManageTableDB.cpp/.h` | 俱乐部牌桌查询、状态更新与统计 | | `ManageUserDB.cpp/.h` | 用户资料、VIP、账号类型和状态查询 | | `ManageTool.cpp/.h` | 用户财富及 Redis 通用读写相关工具 | | `ConfigServer.cpp` | TARS 风格配置服务、数据库初始化和动态重载 | | `begintimer.cpp/.h` | 牌局开始计时接口 | | `endtimer.cpp/.h` | 牌局结束计时接口 | | `gamecalculate.h` | 牌局计算接口声明 | | `gamebanker.h` | 庄家相关逻辑接口声明 | | `sendhdcard.h` | 发牌相关逻辑接口声明 | | `Hall.unity.meta` 等 | Unity 场景资源元数据 | ## 技术方向 | 层级 | 技术 | 用途 | | --- | --- | --- | | 服务端 | C++ | 业务接口和数据访问逻辑 | | 服务框架 | TARS 风格接口 | 服务注册、代理调用和配置管理 | | 数据存储 | 关系数据库 | 用户、组织和房间状态持久化 | | 缓存 | Redis 风格接口 | 高频查询和关系数据缓存 | | 客户端资料 | Unity 元数据 | 场景资源索引示例 | ## 代码阅读路径 ```bash git clone https://gitee.com/digitalduckling/pokerstar.git cd pokerstar ``` 推荐顺序: 1. 阅读 `ConfigServer.cpp`,了解服务初始化和配置重载; 2. 阅读 `ManageClubDB.h`,了解组织模块公开接口; 3. 对照 `ManageClubDB.cpp`,理解数据代理与缓存请求; 4. 阅读 `ManageTableDB.h` 和 `ManageUserDB.h`,梳理跨模块关系; 5. 检查流程接口文件,识别当前仓库缺失的依赖。 ## 当前仓库边界 代码引用了若干未随仓库发布的协议定义、生成头文件、服务实现和配置文件。因此,当前版本不能作为完整工程直接构建。 为了提高可复现性,后续可以补充: - CMake 或可用的 Makefile; - 依赖名称和版本; - 接口定义及代码生成步骤; - 脱敏后的数据结构示例; - 最小可运行服务; - 单元测试和集成测试; - Docker 开发环境与示例配置。 ## 游戏截图与演示 以下图片来自项目现有演示素材,用于展示登录、大厅和牌桌操作界面。实际界面会随客户端版本和二次开发方案变化。 ### 登录界面 ![PokerStar Unity 登录界面](https://foruda.gitee.com/images/1753169809227926559/fd1297a9_15798104.jpeg "PokerStar 登录界面") ### 牌桌操作 ![Texas Hold'em 操作界面](https://foruda.gitee.com/images/1753170011081706192/1145e1ab_15798104.jpeg "PokerStar 操作") ## 联系与项目咨询 如需咨询项目演示、技术架构、二次开发或版本信息,可以通过以下方式联系项目维护者: - Telegram:[@fox_lovemyself](https://t.me/fox_lovemyself) - Email:[zyue02561@gmail.com](mailto:zyue02561@gmail.com) ## 常见问题 ### 这是完整应用吗? 仓库包含部分服务端模块、接口声明和 Unity 元数据。 ### 可以直接执行 make 吗? 当前文件引用了未公开依赖,无法仅使用现有文件完成独立构建。 ### 适合学习什么? 适合研究 C++ 服务模块划分、数据代理、缓存访问、组织关系模型、配置加载和接口设计。 ### 如何反馈问题? 请使用仓库的 [Issues](https://gitee.com/digitalduckling/pokerstar/issues) 提交可以复现的技术问题。不要在公开 Issue 中包含账号、密钥、生产数据或个人敏感信息。 ## 许可证 公开代码采用 [木兰宽松许可证,第 2 版](LICENSE)。使用和分发时请遵守许可证条款,并保留所需的版权、专利、商标和免责声明。 ## 参与贡献 欢迎通过 Issue 和 Pull Request 改进构建脚本、接口文档、测试与示例配置。提交内容应可复现,并避免包含敏感数据或未经授权的第三方资源。