在一个在线经理游戏(如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
例如,这些附加因素可能是战术价值。
你认为这是计算游戏的好方法吗?我的用户表示他们对模拟质量不满意。我如何改进它们?你有不同的方法可以给出更好的结果吗?或者你认为我的方法很好,我只需要调整条件语句中的值并尝试一下?
我希望你能帮助我。提前致谢!使用最大
在这个模拟中,计算中的10特别代表什么? – 2009-09-03 17:47:51
模拟质量如何,他们不满意? – 2009-09-03 17:56:06
@Kyle Walsh:只使用10s,因为mt_rand()函数只取整数值。我想生成一个-1(或更高取决于其他因素)和+1作为浮点值的随机值。 – caw 2009-09-04 15:09:13