gpt4 book ai didi

algorithm - 在角色扮演游戏中创造机会功能

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:24 25 4
gpt4 key购买 nike

我正在创建一个具有机会系统的服务器端 RPG 游戏。例如,玩家在击中目标时有 30% 的几率使敌人昏迷,并增加 70% 到 35% 的伤害。

所以我提出了这个解决方案。

//'s' as stuns and 'd' as more damage;
array a = ['s', 's', 's', 'd', 'd', 'd', 'd', 'd', 'd', 'd'];
int chance = random(0, 9);
print a[chance];

但是上面的解决方案首先有一个问题,它只适用于整数,另一个问题是它只适用于可以被 10 整除的数字。

例如,上面的函数将不会以 25% 或 0.1% 的几率作为输入工作。

** Warning: The code above is not a language. it just is written algorithm**

最佳答案

生成一个大数,并检查该随机数是否小于表示百分比的数字。

例如,要有 30% 的机会(我将使用 1 的下限来简化代码,并且我假设这两个界限都包含在内):

int chance = random(1, 10) // 1 - 10

if (chance <= 3):
// The 30% chance was met (3 / 10 == 30%)

int chance = random(1, 100) // 1 - 100

if (chance <= 37):
// A 37% chance was met (37 / 100 == 37%)

或者,对于 float 机会,从超过 100 的值生成:

int chance = random(1, 1000) // 1 - 1000

if (chance <= 123):
// A 12.3% was met (123 / 1000 == 12.3%)

向随机生成器添加更多 0 以获得更高的精度。小数点后一位为1000,小数点后两位为10000...

条件中的数字是生成器可能产生的最大数字的百分比。

当然,这是假设一个统一的生成器。

关于algorithm - 在角色扮演游戏中创造机会功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56821458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com