1

我正在尝试编写一行 Ruby 代码来计算文本冒险游戏中简单技能测试的可能成功率。测试是“如果 x + random(12) => y then”。如何计算此语句在 Ruby 中为真的成功率?

在游戏中,玩家有一定的技能,偶尔需要测试这些技能加上一个随机数来获得大于或等于给定的难度数。我想计算能够赢得该技能测试的成功率百分比。

作为冒险游戏中的一个例子,你试图在丛林中追踪一些动物。为此,您必须测试您的跟踪技能。例如,如果您的跟踪技能为 3,并且您在其中添加了一个 1-12 之间的随机数,则您需要至少获得 9 或更高的分数才能成功。基本上:技能 + 随机(12)=> 难度数。我想在他们玩之前显示一个成功率百分比,看看他们成功的机会有多大。

那么在 Ruby 中,用我当前的技能分数计算成功机会的算法是什么?谢谢!

4

1 回答 1

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
于 2012-12-07T05:17:13.850 回答