在一个在线经理游戏(如Hattrick)中,我想模拟两支球队之间的比赛。
一个团队由 11 名球员组成。每个球员的力量值都在 1 到 100 之间。我取每支球队防守球员的这些力量值并计算平均值。这就是一支球队的防守质量。然后我利用进攻球员的优势,得到进攻质量。
对于每次攻击,我执行以下操作:
$offFactor = ($attackerTeam_offensive-$defenderTeam_defensive)/max($attackerTeam_offensive, $defenderTeam_defensive);
$defFactor = ($defenderTeam_defensive-$attackerTeam_offensive)/max($defenderTeam_defensive, $attackerTeam_offensive);
目前,我不知道为什么我将它除以两个值中的较高值。但是这个公式应该给你一个稍后需要的进攻和防守质量的因素。
然后我为每个可能发生的事件嵌套了条件语句。例:进攻方有得分机会吗?
if ((mt_rand((-10+$offAdditionalFactor-$defAdditionalFactor), 10)/10)+$offFactor >= 0)
{ ... // the attack succeeds
例如,这些附加因素可能是战术价值。
你认为这是计算游戏的好方法吗?我的用户说他们对模拟的质量不满意。我该如何改进它们?你有不同的方法可以产生更好的结果吗?还是您认为我的方法很好,我只需要调整条件语句中的值并进行一些实验?
我希望你能帮助我。提前致谢!