我试图产生一个随机的怪物遭遇。基本上,当按下“寻找战斗!” 按钮,我想返回一个随机怪物供玩家战斗。但问题是,我希望一些怪物比其他怪物有更多的机会出现,而有些则非常罕见。
我一直在考虑最好的方法,到目前为止,我想到了 3 种方法。
给每个怪物一个“权重”,然后将它们的重量除以列表中每个怪物的总重量,从而获得被选中的 % 机会。优点:很容易制作。缺点:如果我添加怪物,一些怪物可能会变得太稀有,而不是我想要的。
让每个怪物都有 % 的机会遇到,然后将它们全部按随机顺序放在一个列表中。然后从列表中的第一个怪物开始,使用 % 遭遇几率掷骰子。如果为真,则选择怪物。如果为假,则转到列表中的下一个怪物。至少一个怪物将有 100% 的遭遇机会来确保遭遇发生。优点:看起来很随意。缺点:与 #1 相同,对于它的价值来说可能有点过于复杂。
给每个怪物一个怪物类型(即:普通、强、稀有)然后给每个类型一个 % 的机会被选择。然后掷骰子看看会在遭遇中选择哪种类型,然后选择该类型的随机怪物。优点:容易做到,会使稀有怪物保持我希望它们成为的 % 几率。缺点:不能让所有怪物都有自己的 % 几率。
我的问题:最好的方法是什么?我说的一种方法还是有更好的方法?
这是一个网站,我正在使用 asp.net、C# 和 sql server。Javascript 和 jquery 都很好。如果您需要更多信息,我很乐意分享。
编辑:我想到了第四种方法。这将是 1 和 3 的混合。为每个怪物使用“权重”(1 到 1000 之间)。然后掷1000个骰子。然后对每一个重量低于骰子随机数的怪物,将它们放入一个列表中,并在列表中随机选择一个怪物。