经过大量的挖掘,我发现这个问题Improving soccer simulation algorithm并将其转换为C#,并添加了额外的内容,如体能、士气、球员的各种统计数据,这些都会以各种方式影响比赛我正在努力的是在队形的概念上工作。
现在,1-1-1阵型将是最好的阵容,因为你把你的最高等级球员放在每个位置上,他们的平均值不会因为其他球员的统计数据较低而降低,我想让5-4-1的防守比4-4-2的防守好,这比3-4-3的防守好平等的。
当有比对方更多的球员拥有相同的统计数据时,我该如何使被标记为后卫的球员的平均水平更好呢?

最佳答案

最简单的解决方法是对统计数据求和,而不是求平均值。我认为两个“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的玩家的收视率等。

关于c# - 将编队算法用于足球模拟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17399289/

10-10 20:14