我正在寫一個相當基本的(現在)數字搗戰模擬器在JavaScript中。其目的是測試即將到來的比賽的公式,所以我們可以平衡球員的統計數據。雙玩家號碼作戰模擬器青睞第二玩家
目前,SIM降低基於以下公式
player1.hp -= (Math.floor(Math.random() * 5) + 1) * player2[Math.floor(Math.random() * player2.length)].str;
HP上100開始選手的健康,和STR爲2
player2[Math.floor(Math.random() * player2.length)].str
上面的代碼挑選的3「份1- 「的球員(頭部,身體,腿),因爲每一塊都有自己的統計數據。
因此,對於任何特定的回合,從玩家1開始,他們頭部的HP會根據第一個公式減少一定數量(玩家2挑選的隨機部分,這是str stat乘以1和5之間的隨機數)
然後玩家2的部分受到攻擊,玩家1的隨機部分被挑選出來用於str狀態。
(是的,玩家2次的攻擊總是首先目前,然後播放器1 - 這可能是問題?)
當我運行一個單一的「戰鬥」,結果好壞不一。但是當我進行100場或1000場戰鬥時,玩家2通常排在首位,平均贏率爲60%。
JS文件here(下載,並通過節點運行)
如果玩家1第一次受到攻擊,它會在60%的時間裏排在前面嗎?誰先攻擊誰可能有某種優勢,這可能反映了現實。也許你可以隨便誰開始,因此晚上在戰鬥開始時佔上風。 –
對不起,在我的代碼中,玩家2實際上是先消耗玩家1的健康(首先是頭部,然後是身體,最後是腿部)。是的,我的目標是隨機排列順序:)奇怪的是,一次運行模擬(rounds = 1),很多次,大致爲50/50分割。運行很多次,幾次(rounds = 1000)顯示了差異。 –