经过大量的挖掘后,我发现了这个问题Improving soccer simulation algorithm并将其转换为C#,并添加了额外的内容,如健身,士气,各种统计数据,以及以各种方式影响比赛的球员。我正在努力的是在形成这个想法。
在那一刻,1-1-1阵型将是最好的阵容,因为你把最高级别的球员放在每个位置,并且由于其他球员的统计数据较低,他们的平均值没有降低,我希望这样一个5-4-1比4-4-2有更好的防守,这将比3-4-3更好,所有防守球员都是平等的。
如果有更多的球员拥有相同的统计数据而不是另一方,那么我如何才能让被标记为防守者的球员的平均值更好?
答案 0 :(得分:1)
最简单的解决方案是统计统计数据而不是对它们求平均值。我认为两名“5”的球员几乎和一名“10”的球员一样好,甚至更好。
除此之外,您还可以合并一些缩放因子。例如,一个小组中的玩家相互加强,因此作为一个团队,他们有效地比单独玩得更好:
var playerCount = playersInLine.Count();
var teamFactor = Math.Pow(1.5, (playerCount-6)) - (1.5)^(-5));
var playerRates = playersInLine.Select(p => p.Rate + p.Rate * teamFactor);
var lineRate = playerRates.Sum();
该公式根据以下公式提高了玩家的比率:link。我假设一条线上最多有6名球员,但我对足球知之甚少,所以你可能想要改变它;)
你可以用它进行调整,所以它不会对弱小的玩家有很大的改变,但仅限于强于5的玩家等。