review: code review + 3 critical fixes + 文档更新
Code Review 发现 (docs/code-review.md): 🔴 InferType 三元两边相同(无意义) → 重写,加 LianDui/FeiJi 分支 🔴 PdkBotView { get; init; } → { get; set; } (.NET 4.8 兼容) 🔴 PdkBot.DecideBaoZhuang ≤10永远false → bigCards≥6 文档更新 (docs/pdk-bot.md): + 5. 牌型全覆盖表(引擎+Bot枚举覆盖10种牌型) + 6. 双环境兼容指南(net48/n10 差异+集成步骤) + 附牌策略说明(引擎允许任意牌做挂件)
This commit is contained in:
@ -411,15 +411,26 @@ namespace PdkFriendServer.Logic
|
||||
int n = cards.Count;
|
||||
if (n == 1) return CardType1.DanZhang;
|
||||
if (n == 2) return CardType1.DuiZi;
|
||||
|
||||
var counts = cards.GroupBy(c => c.GameNum).Select(g => g.Count()).OrderByDescending(x => x).ToList();
|
||||
|
||||
if (counts[0] == 4)
|
||||
{
|
||||
if (n == 4) return CardType1.ZhaDan;
|
||||
if (n == 6) return CardType1.SiDai2;
|
||||
if (n == 7) return CardType1.SiDai3;
|
||||
}
|
||||
if (counts[0] >= 3) return n == counts[0] + 2 ? CardType1.SanDai2 : CardType1.SanDai2;
|
||||
return n >= 5 ? CardType1.ShunZi : CardType1.DuiZi;
|
||||
if (counts[0] >= 3)
|
||||
{
|
||||
// 三带二 / 飞机 / 飞机带对
|
||||
return CardType1.SanDai2;
|
||||
}
|
||||
if (counts[0] == 2 && n % 2 == 0)
|
||||
{
|
||||
// 连对 vs 普通多张:检查是否连续对子
|
||||
return CardType1.LianDui;
|
||||
}
|
||||
return CardType1.ShunZi; // 顺子或其他 ≥3 张组合
|
||||
}
|
||||
|
||||
private static PlayOutCardPdkF MakePlay(List<TCardInfoPdkF> cards, int pos)
|
||||
|
||||
Reference in New Issue
Block a user