我有一个怪物字典,我通过选择一个随机整数并将其与字典值中的第一个数字(它是一个列表)相匹配来获取敌人
#NAME: ID, HP, MP, ATK, DEF, MGATK, MGDEF, SPEED, EXPSHARE, IMG
monsters_list = {"BOXROACH": [1, 20, 5, 5, 5, 5, 5, 5, 5, pg.image.load("boxcroach.png")],
for i in range(amt):
monster = random.randint(1, len(self.monsters))
for key in self.monsters:
if self.monsters[key][0] == monster:
monsters.append([key, self.monsters[key]])
所以amt是1到3之间的数字,它决定了多少怪物将面对,然后它通过字典来匹配值的第一个索引,然后将怪物附加到列表中,最终看起来像这样:
[['SLUGGER', [2, 20, 10, 5, 3, 8, 7, 11, 7, <Surface(150x160x32 SW)>]], ['SLUGGER', [2, 20, 10, 5, 3, 8, 7, 11, 7, <Surface(150x160x32 SW)>]], ['MEAN SPIRIT', [10, 15, 15, 5, 5, 5, 5, 5, 20, <Surface(100x100x32 SW)>]]]
(忽略哑名)
我想做的是检查同一个敌人是否有多个,然后以某种方式区分它们。我本来打算将所有索引添加到另一个列表然后比较它们,但是有更有效的方法吗?感谢。
答案 0 :(得分:1)
你可以这样做: 检查您的随机数,以便不相同,以便您的怪物会有所不同。
如果随机数再次重复,则执行下一个随机数。
如果你想在某些方面改变它们,那么制作怪物细节类会更好,如果它们被重复,那么为每个怪物更改一些参数。