在一個在線經理遊戲(如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