足球(英式足球)比赛处理

Football (soccer) match processing

我想实现足球比赛处理,所以我花了很多时间寻找好的算法来完成它。我有一些数据作为输入——玩家有一些参数。有些参数在比赛进行时是静态的(技能),有些是动态的(身体状态、心理状态),在过程中不断变化。我还有可以手动更改的外部参数。我不需要它如此接近真实的足球(不包括结果。20:0 无论如何都会很糟糕)。最后一个主要思想是相同的输入不会导致相同的输出。一些中间计算应该 return 随机值。

算法应该不会很慢,因为在不久的将来需要同时处理大约 1000 个匹配项 step-by-step。每个步骤将每 3 秒计算一次。而且这些步骤应该在逻辑上联系起来,因为我将制作所有球和球员动作的图形匹配过程。

你能为我推荐什么算法?我想到了神经网络,但我不确定这是一个好的解决方案。

你真的帮了我,因为我花了大约半年的时间才找到它,非常感谢你!

假设您在游戏中每 5 分钟有一个 "action",那么 90/5 = 18 个动作。为了使其更逼真,您可以选择随机数,例如:

numberOfActions = round(10,20);

这个数字可以显示为你 for() 的长度。 比起你的两组球员的防守和进攻参数之间的相互作用。比方说进攻A-防守B的每一点都会创造百分之十的成功机会:

if((TeamA.Offence-TeamB.Defence)*10 > round(0,100))
{
  TeamA.points++;
}

守门员当然可以降低这种可能性,甚至可以显着降低。
等等。当然你可以让它变得更复杂。就像你只能比较某些球员的统计数据,这取决于谁有球。你的攻防参数可以随时间降低,随状态升高:

TeamA._realOffenceValue = 
    TeamA.Offence*
    (1-i/numberOfActions)*
    (TeamA.leftOffencePlayer.Condition);

请记住,在足球经理或 Europa Universalis 等游戏中,一切都是为了欺骗玩家。平衡游戏是一项需要花费很多时间的工作,而且论坛上没有人会为你做这件事:)