fix: CanAnKong硬编码false + 人类HUD显示听牌/杠/对手状态

修复:
- CanAnKong: 硬编码false → 检查手牌中4张相同(暗杠)
- HumanMahjongPlayer: 添加MeldsSolver依赖,实时检测听牌
- 人类HUD: 显示牌墙/副露/听牌🀄/杠类型(暗/明/加)
- 交互模式人类: 对手显示'X张手牌 | 已pung[..]'不暴露手牌
This commit is contained in:
xiaoou
2026-07-04 17:24:05 +08:00
parent 3c381f2758
commit d416450e56
4 changed files with 81 additions and 25 deletions

View File

@ -26,12 +26,13 @@ public class MahjongRoom
_rules = rules;
_autoMode = autoMode;
_ais = playerNames.Select((n, i) => new RandomMahjongAI(n, new Random(i * 7919))).ToList();
if (humanPlayer != null)
_human = new HumanMahjongPlayer(humanPlayer);
var fanConfig = BuildFanConfig();
_solver = new MeldsSolver(fanConfig);
if (humanPlayer != null)
_human = new HumanMahjongPlayer(humanPlayer, _solver);
var phases = BuildPhases();
var (wc, r258) = GetWinParams();
_phaseMachine = new MahjongPhaseMachine(phases, _solver, wildcardCount: wc, require258: r258);