fix: 番型互斥从未应用 + FanValue兜底乱给分 + 白名单过滤

Root cause:
1. ApplyFanExclusions定义但从未被调用 → 互斥(清一色⊃缺一门)形同虚设
2. FanValue中 _=>1 兜底 → '缺一门''平胡'等不在DSL的番型也被+1分
3. IdentifyFans返回所有结构模式 → 与DSL配置不一致

修复:
- CheckWin五处IdentifyFans调用后加ApplyFanExclusions
- FanValue去掉_=>1,改为只认DSL配置+硬编码知名番型
- IdentifyFans末尾白名单过滤:只返回DSL或知名番型
- PhaseMachine.GetFanValue同步更新
- ScoreEngine: 不在DSL的番型→0分
This commit is contained in:
xiaoou
2026-07-04 18:12:06 +08:00
parent 87df914c8d
commit a06f40bd2d
3 changed files with 19 additions and 16 deletions

View File

@ -102,14 +102,11 @@ public class MahjongPhaseMachine
private int GetFanValue(string fanName)
{
// Simple lookup — full implementation would read from DSL
return fanName switch
{
"清一色" => 4,
"对对胡" => 2,
"暗七对" => 4,
"带幺九" => 2,
_ => 1
"清一色" => 24, "混一色" => 6, "对对胡" => 2,
"暗七对" => 8, "七对" => 8, "带幺九" => 2, "十三幺" => 88,
_ => 0
};
}