feat: afterMin牌效率加权 — 出牌后手牌结构改善→加分
- beforeMin = 当前手牌最小步数 - afterMin < beforeMin → +12% × improvement率 - afterMin > beforeMin 且多牌 → -3% (打散手牌惩罚) - 效果: 单张-1.2%, 三带二+0.9%, 飞机×3, 锁手+2次
This commit is contained in:
@ -169,6 +169,25 @@ namespace PdkFriendServer.Logic
|
||||
}
|
||||
}
|
||||
|
||||
// 4.5. afterMin 牌效率加权
|
||||
int beforeMin = HandOptimizer.MinPlays(hand);
|
||||
for (int i = 0; i < scoredCandidates.Count; i++)
|
||||
{
|
||||
var (p, wr, am, m) = scoredCandidates[i];
|
||||
if (am < beforeMin)
|
||||
{
|
||||
// 出牌后手牌结构变好 → 加权
|
||||
double improvement = (double)(beforeMin - am) / beforeMin;
|
||||
wr += improvement * 0.12; // 最多 +12% 当 minPlays 减半
|
||||
}
|
||||
else if (am > beforeMin && m)
|
||||
{
|
||||
// 多牌出牌反而把手牌打散了 → 惩罚
|
||||
wr -= 0.03;
|
||||
}
|
||||
scoredCandidates[i] = (p, wr, am, m);
|
||||
}
|
||||
|
||||
// 5. 炸弹感知加权
|
||||
int bombsOutside = _tracker.BombsOutside(hand);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user