本项目使用Entity-Component-System (ECS)架构实现,基于esper v3.3库开发。ECS是一种面向数据的架构模式,非常适合游戏开发。
- 游戏中的基本对象,如玩家、卡牌
- 在系统中仅表示为一个ID
- 纯数据类,用于描述实体的属性
- 没有行为逻辑,只存储状态
- 包含游戏逻辑的处理器
- 操作具有特定组件的实体
卡牌相关
Card
: 表示一张扑克牌,包含花色、点数和牌组IDHand
: 表示玩家手中的牌集合
玩家相关
PlayerComponent
: 包含玩家基本信息,如名称、是否AITeamComponent
: 标识玩家所属队伍(A队或B队)
游戏控制
TurnComponent
: 管理游戏回合和发牌/出牌状态
DeckSystem
- 负责创建和洗牌
- 提供抽牌功能
DealSystem
- 处理发牌逻辑
- 管理发牌阶段的玩家轮换
PlaySystem
- 处理出牌逻辑
- 管理AI和人类玩家的不同出牌方式
- 添加
RuleSystem
实现够级游戏规则验证 - 实现
ScoreSystem
计算得分和游戏胜负 - 添加
AISystem
实现更智能的AI决策逻辑 - 考虑添加
EventSystem
处理游戏事件和通知
- 高性能: 数据布局优化,适合并行处理
- 模块化: 组件可重用,系统职责单一
- 灵活性: 可以轻松添加/移除功能
- 可测试性: 系统逻辑与数据分离,便于单元测试