我正在写一个相当基本的(现在)数字捣战模拟器在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)显示了差异。 –