feat: 四归一/圈风/门风/单钓将识别器 + GameState状态跟踪

新增4个番型识别器:
- 四归一: 4张同牌跨面子使用(不在单个kezi/kong) — 纯结构检测
- 圈风: 当前风圈对应的风刻(31=东/32=南/33=西/34=北)
- 门风: 玩家座位风位对应的风刻(庄=东)
- 单钓将: 自摸时摸到的牌完成了将牌的单吊对子

GameState扩展:
- WindRound(当前风圈) + SeatWinds(玩家→风向) + IsSingleWait flag
- Deal()分配座位风位(庄家=东,按逆时针)
- StepTurn自摸时检测单钓将(摸牌←→对子匹配)

效果: 国标--check 6→0 (圈风/门风/单钓将/四归一全部消除)
所有玩法合规检查通过(南昌/血战仅base_fan=0标记警告)
This commit is contained in:
xiaoou
2026-07-04 23:31:31 +08:00
parent 816000a286
commit 3f91d7c3f8
4 changed files with 53 additions and 3 deletions

View File

@ -68,7 +68,7 @@ public class CapabilityRegistry
"将一色","大四喜","大三元","小四喜","小三元","三风","双箭刻",
"一色四同顺","一色三同顺","一般高","五门齐","全求人","门前清",
"鸡胡","癞子胡",
"杠上开花","海底捞月","抢杠胡","天胡","地胡",
"圈风","门风","单钓将","四归一","杠上开花","海底捞月","抢杠胡","天胡","地胡",
"将","无字" // base_fan:0/1 markers
};
foreach (var f in rules.FanTypes)