feat: 实现麻将游戏结算系统与自摸胡功能

新增结算类型枚举和分数变更记录模型
补全响应裁决器与结算服务,支持点炮胡、自摸胡和明杠结算
扩展座位模型,增加已胡状态和分数字段
完善胡牌评估器,支持自摸胡判断
前端原型页增加分数显示和已胡状态
更新SPRINT文档记录当前进度
This commit is contained in:
hujun
2026-03-20 13:58:16 +08:00
parent 48da7d4990
commit 36dcfb7d31
24 changed files with 1349 additions and 53 deletions

View File

@@ -1,15 +1,19 @@
# 当前执行入口
- 当前 Sprint 文档:`docs/SPRINT_01_ISSUES_BOARD.md`
- Sprint 1 当前进度:`S1-01``S1-02``S1-03``S1-04``S1-05``S1-06``S1-07` 已完成
- `S1-06` 已完成内容
- 已新增 `docs/RESPONSE_RESOLUTION_RULES.md`
- 已明确项目 V1 响应优先级:`HU > GANG > PENG > PASS`
- 已明确同优先级裁决按出牌者之后最近顺位优先。
- 已明确当前 V1 不实现完整 `过水不胡` `一炮多响`
- 已明确公共消息与私有消息边界,以及后续裁决器接入顺序
- 当前推荐的下一步有两条:
- 文档主线:`S1-08` 对局页信息架构与页面拆分方案
- 代码主线:开始下一轮“真实响应窗口停顿 + 候选下发 + 裁决器”实现,不再停留在模型和消息层
- 重要现状说明
- 后端和前端已经具备结构化响应候选模型与私有消息结构
- 当前仍未在弃牌后真正暂停主流程等待响应,这是下一轮核心开发点。
- 当前主线已进入“统一结算服务 + 自摸胡闭环”阶段
- 最新已完成能力
- `HU` 已同时支持两条路径:
- 响应胡(吃别人弃牌)
- 自摸胡(当前回合主动胡)
- `HuEvaluator` 已补 `canHu(List<Tile>)`,可直接判断整手自摸是否成胡
- 当前回合私有动作消息已支持结构化候选下发,真人玩家在可自摸时会收到 `HU + DISCARD` 候选
- AI 当前回合若满足自摸胡条件,会优先执行 `HU`,不再一律走弃牌策略。
- `SettlementService` 已补 `ZI_MO_HU` 结算占位规则:所有未胡玩家各 `-1`,自摸方累计获得对应分数
- 自摸胡后会将胡牌座位标记为 `won`,并按血战逻辑继续推进到下一有效座位;若仅剩 1 名未胡玩家则结束
- 当前仍未完成的核心点
- `暗杠 / 补杠` 需要引入副露/杠展示状态,否则手牌数与桌面状态会失真
- 正式四川血战计分规则仍未实现,当前仍是工程占位分。
- H5 正式页面拆分仍未开始。
- 当前推荐的下一步:
1. 代码主线:补 `Meld/副露` 领域模型,再接 `暗杠 / 补杠 / 杠后补牌 / 杠分事件`
2. 结算主线:把占位规则升级为正式血战分数模型,并细化 `SETTLEMENT_APPLIED` 载荷。