如何计算游戏中可能的成功率:x + random(12)=> ÿ

时间:2012-12-07 05:10:04

标签: ruby probability

我正在尝试编写一系列Ruby代码,用于计算文本冒险游戏中简单技能测试的可能成功率。测试是“如果x +随机(12)=>然后是”。如何在Ruby中计算此陈述成功的可能成功率?

在游戏中,玩家具有某些技能,并且偶尔必须测试这些技能加上随机数以获得大于或等于给定的难度数。我想计算能够赢得技能测试的成功率百分比。

作为冒险游戏的一个例子,你试图通过丛林跟踪一些动物。要做到这一点,你必须测试你的跟踪技巧。例如,如果您的跟踪技能为3,并且您在1-12之间添加了一个随机数,那么您需要获得至少9或更高的成功才能获得成功。基本上:技能+随机(12)=> Difficulty_Number。我想在比赛开始之前显示成功率百分比,看看他们成功的机会是什么。

所以在Ruby中,用我当前的技能分数来计算成功几率的算法是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

你可以这样做。

def success_rate(skill, success_level, random_range=12)
  delta = success_level - skill

  return [100 - (delta.to_f / random_range * 100), 100].min.round(2)
end