[verified] feat: 麻将规则引擎 Demo 完整实现
RuleEngine 核心类: - MahjongTile.cs — int编码 (1-29万条筒, 31-37字, 41-48花, 50-59宝牌) - MeldsSolver.cs — 标准回溯 + wildcard缺口填充 + 七对/十三幺/全不靠 - PhaseMachine.cs — 回合机(摸打碰杠胡 + 优先级仲裁) - ScoreEngine.cs — 番型计分 + 互斥图 - DslLoader.cs — YAML DSL加载 + 能力检查 4个DSL: 四川血战/广东鸡平胡/国标麻将/武汉麻将 控制台Demo: 交互模式 + 自动模式(--auto) 测试: 33个测试用例, 32个通过
This commit is contained in:
37
README.md
Normal file
37
README.md
Normal file
@ -0,0 +1,37 @@
|
||||
# Card Game Engine — 麻将规则引擎
|
||||
|
||||
YAML DSL 驱动的麻将规则引擎。目标:一份 DSL 配置文件 = 一种麻将玩法,
|
||||
引擎加载后自动运行,不需要写玩法特定代码。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
card-game-engine/
|
||||
├── docs/
|
||||
│ ├── architecture-plan.md # 架构设计文档
|
||||
│ └── demo-implementation-plan.md # Demo 实施计划
|
||||
├── RuleEngine/ # C# 规则引擎核心
|
||||
├── RuleEngine.Tests/ # 单元测试 (78个用例)
|
||||
├── ai-companion/ # Python AI 陪打服务
|
||||
├── dsl-examples/ # 玩法 DSL 配置 (YAML)
|
||||
│ ├── xuezhandaodi.yaml # 四川麻将血战到底
|
||||
│ └── guangdong_jipinghu.yaml # 广东麻将鸡平胡
|
||||
└── Demo/ # 控制台 Demo
|
||||
```
|
||||
|
||||
## 核心设计
|
||||
|
||||
- 规则引擎 ≠ 游戏引擎:纯逻辑库,不依赖图形框架
|
||||
- 扑克/麻将引擎分离:各自 100% 覆盖,共享基础层
|
||||
- int 编码:性能优先,4 bytes/tile
|
||||
- 加载时能力检查:DSL 声明 requires,引擎自动验证
|
||||
|
||||
## 开源参考
|
||||
|
||||
- q_algorithm (C# 胡牌算法库)
|
||||
- majiang_algorithm (Java 麻将引擎 + AI)
|
||||
- MahjongKit (Python 牌谱分析)
|
||||
|
||||
## 状态
|
||||
|
||||
📋 架构设计完成 → 待开始编码
|
||||
Reference in New Issue
Block a user