这几乎肯定是一个非常新手的问题,但由于我是一个完全的新手,所以我对此很满意。
简单地说,我想知道如何在一个简单的游戏中制作一个战利品掉落系统,当你实现某个目标时,你有机会比其他人获得更多的某些元素。如果有任何开源Python游戏有这个功能,请推荐给我。
这是我所知道的做法:给定一个示例 [A,B,C,D,E,F],选择 3 项。
这确实很简单,但是,当我希望比其他样本更频繁地选择样本中的某些内容时,我该怎么办,即:给定样本 [A,B,C,D,E,F]选择 3 个,不重复,但选择 A 的时间为 30%,B 25%,C 20%,D 15%,E 5%,F 5%。
或者,也许更好的是,对所选数量没有限制(或范围限制,例如 3-5 个项目),但以不同的速率选择样本中的每个项目并且不重复,以便我可以做A 20%、B 20%、C 15%、D 10%、E 2%、F 1%。希望这是有道理的。
最佳答案
这是一种简单、懒惰的方法。
给定一个(item,weight)
对列表。
loot = [ (A,20), (B,20), (C,15), (D,10), (E,2), (F,1) ]
请注意,权重不必添加到任何特定的内容,它们只需是整数即可。
一次性准备步骤。
choices = []
for item, weight in loot:
choices.extend( [item]*weight )
现在只是random.choice(choices)
。
关于python - 如何用Python为游戏制作选择性RNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535046/