将编队算法应用到足球模拟中

本文关键字:模拟 应用 算法 | 更新日期: 2023-09-27 18:20:35

经过大量挖掘,我发现了这个问题——改进足球模拟算法并将其转换为C#,并添加了额外的功能,如体能、士气、球员的各种统计数据,这些数据以各种方式影响比赛。我正在努力的是在形成的概念中工作。

目前,1-1-1的阵容将是最好的阵容,因为你把你的得分最高的球员放在每个位置上,他们的平均值不会因为其他球员的统计数据较低而降低,我想这样做,5-4-1的防守比4-4-2的防守更好,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();

该公式根据以下公式增加玩家的比率:链接。我假设一条线上最多有6名球员,但我对足球了解不多,所以你可能想改变这一点;)

你可以对它进行调整,例如,它不会对弱玩家的评分有太大的改变,但只对5等以上的玩家有影响。