diff --git a/PdkFriendServer/Logic/IsmctsBot.cs b/PdkFriendServer/Logic/IsmctsBot.cs index d90fad0b..bf9d5a52 100644 --- a/PdkFriendServer/Logic/IsmctsBot.cs +++ b/PdkFriendServer/Logic/IsmctsBot.cs @@ -187,21 +187,25 @@ namespace PdkFriendServer.Logic } } - // 4.5. afterMin 牌效率加权 + // 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 减半 + wr += improvement * 0.25; // max +25% } - else if (am > beforeMin && m) + else if (am > beforeMin) { - // 多牌出牌反而把手牌打散了 → 惩罚 - wr -= 0.03; + // 手牌被打散 → 惩罚 + double degradation = (double)(am - beforeMin) / beforeMin; + if (m) + wr -= degradation * 0.30; // 多牌打散 → 严重(-30%) + else + wr -= degradation * 0.10; // 单张打散 → 中(-10%) } scoredCandidates[i] = (p, wr, am, m); } diff --git a/exe/PdkFriendServer/PdkFriendServer.dll b/exe/PdkFriendServer/PdkFriendServer.dll index 79572a14..8c13f08b 100644 Binary files a/exe/PdkFriendServer/PdkFriendServer.dll and b/exe/PdkFriendServer/PdkFriendServer.dll differ diff --git a/exe/PdkFriendServer/PdkFriendServer.pdb b/exe/PdkFriendServer/PdkFriendServer.pdb index 5e3632c5..8439580b 100644 Binary files a/exe/PdkFriendServer/PdkFriendServer.pdb and b/exe/PdkFriendServer/PdkFriendServer.pdb differ diff --git a/exe/hjha-console/PdkFriendServer.dll b/exe/hjha-console/PdkFriendServer.dll index 79572a14..8c13f08b 100644 Binary files a/exe/hjha-console/PdkFriendServer.dll and b/exe/hjha-console/PdkFriendServer.dll differ diff --git a/exe/hjha-console/PdkFriendServer.pdb b/exe/hjha-console/PdkFriendServer.pdb index 5e3632c5..8439580b 100644 Binary files a/exe/hjha-console/PdkFriendServer.pdb and b/exe/hjha-console/PdkFriendServer.pdb differ