在RPG游戏中创建机会功能



我正在创建一个具有机会系统的服务器端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%的机会一起使用。

**警告:上面的代码不是一种语言。它只是编写算法**

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

例如,有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%)

或,对于浮动机会,从100以上的值生成:

int chance = random(1, 1000) // 1 - 1000
if (chance <= 123):
    // A 12.3% was met (123 / 1000 == 12.3%)

向随机生成器添加更多0,以获得更精确的。数字为1000到一个小数点位置,数字为10000,数字为两个小数点...

条件中的数字是发电机可能产生的最大数字的百分比。

当然,这是一个均匀的发电机。

最新更新