javascript - 两个玩家编号战斗模拟器有利于第二个玩家

标签 javascript simulation montecarlo

我正在用 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 个“部分”(头部、 body 、腿)中挑选出 1 个,因为每个部分都有自己的统计数据。

因此对于任何特定的回合,从玩家 1 开始,他们头部的 HP 根据第一个公式减少一定数量(随机选择玩家 2 的部分,它的 str 统计乘以 1 到 5 之间的随机数)

然后玩家 2 的部分受到攻击,玩家 1 的随机部分被选中用于 str 统计。

(是的,目前总是玩家 2 先攻击,然后是玩家 1 - 这可能是问题所在?)

当我进行一场“战斗”时,结果相当复杂。但是当我进行 100 或 1000 场战斗时,玩家 2 通常以平均 60% 的胜率名列前茅。

JS文件here (通过Node下载运行)

最佳答案

开始的玩家总是有优势,因为他是第一个能够完成最后一击的人如果你想到每个玩家都有 100 hp 和 1 次攻击 = 10 伤害的情况,那么开始的玩家将进行第 10 次攻击并完成这场战斗,而玩家 2 将只命中 9 次。随机伤害仍然有优势,因为第一个玩家有 1 次命中优势

关于javascript - 两个玩家编号战斗模拟器有利于第二个玩家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154698/

相关文章:

java - 移动时抬起代理并增加 z 位置

c - OpenMP Monte_Carlo 模拟实现目标与 PI 的接近度

random - 并行随机数 julia

testing - 用于评估计算机视觉算法的仿真和合成视频生成

r - 蒙特卡罗模拟代码 : generate samples of given size in R

javascript - jQuery-handlebars 插件运行完成后立即执行代码

javascript - JSON.parse node.js 中的意外结果

javascript - 使用 Jquery 提交表单问题

javascript - 使用 Jest 和 Puppeteer 进行并行支持

检索卡方检验的蒙特卡洛模拟值