基于Qt的德州扑克00:系统设计

前言

2024年5月通过了信息系统项目管理师,我瞄上了系统架构设计师,需要一个项目来练练手,以实际体验一下系统设计、系统架构流程。

功能图

根据一个标准游戏框架流程,我将这个德州扑克游戏设计为六大功能。

flowchart TB

A(德州扑克游戏) --> B[玩家管理功能]
A --> C[发牌功能]
A --> D[筹码管理功能]
A --> E[游戏功能]
A --> F[人机交互功能]
A --> G[服务器功能]

需求

我根据一般游戏流程想出来的可能的需求。

用户管理功能

  • 提供用户登录功能,用户可以通过用户名和密码登录游戏;
  • 提供用户注册功能,新用户可以通过注册界面注册;
  • 提供用户信息功能,包括牌局信息、筹码信息等;
  • 提供管理用户信息功能,包括增删改查用户信息;
  • 通过网络通信功能,实现多用户联机游戏;

发牌功能

  • 提供组牌功能,自动生成一副删除鬼牌的不重复52张扑克牌;
  • 提供洗牌功能,自动随机排序52张扑克牌,同时提供洗牌和不洗牌两种模式;
  • 提供发公共牌功能,牌局开始,自动发3张公共牌;
  • 提供发单张牌功能,根据游戏进度,自动发牌;

筹码管理功能

  • 提供筹码兑换功能,游戏开始前,可以根据一般规则兑换筹码;
  • 提供筹码管理功能,根据游戏进度,增加、减少对应用户的筹码数值;

德州扑克功能

  • 提供盲注功能,根据游戏进度进行大小盲注状态切换;
  • 提供筹码交互功能,根据游戏进度进行跟进、加注、全押等状态切换;
  • 提供比牌功能,比较玩家牌大小;

人机交互功能

  • 提供用户管理界面,方便用户注册、登录、联机;
  • 提供牌桌管理功能,根据用户数显示桌布,根据游戏进度显示牌桌状态;
  • 提供筹码显示控件,实时显示各用户筹码数量;
  • 提供发牌显示动画;
  • 提供游戏进度显示,实时显示各用户当前游戏状态;
  • 提供牌型比较界面,显示比牌结果;
  • 提供AI功能,以满足离线、单人游戏场景;

服务器功能

  • 提供后台服务器功能,能够独立、长时间、无界面运行;
  • 能够集成用户管理功能;
  • 能够集成发牌功能;
  • 能够集成筹码管理功能;
  • 能够集成德州扑克功能;
  • 能够集成AI功能;

技术选型

  • 开发环境为Windows 10 22H2
  • 开发语言为C/C++,标准为C++11
  • 开发工具为Qt 5.15.2(MSVC 2019 64bit)
  • 数据库使用SQLITE3

当然,需求部分应该还包括性能要求。

架构

当前版本是个单机游戏,不涉及太复杂的架构。

模块架构图

模块

模块架构图


基于Qt的德州扑克00:系统设计
https://blog.jackeylea.com/qt/system-designer-of-texas-holdem-poker/
作者
JackeyLea
发布于
2024年8月25日
许可协议