我尝试使用random.choice命令,但似乎不起作用。狼已经被分配到暴徒
class Wolf(Character):
def __init__(self):
super().__init__(name="wolf",hp=7,atk=6,df=4,inventory={},spells=
{"bite": randint(3,6)},exp=8)
c = random.choice(mob.spells)
spower = mob.spells[c]
ad = mob.atk / hero.df
damage = ad * spower
damage = int(round(damage))
random.choice
不起作用,因为您传递的是一个字典,它需要可以使用整数索引进行索引的内容。如果关键字是整数,则可以从字典中随机选择。
d = {'a': 10, 'b': 20}
random.choice(d)
以上代码将失败,但这将起作用:
d = {1: 10, 0: 20}
random.choice(d)
它并不神奇,它之所以有效,是因为random.choice
中的代码在0
和len(obj)
之间选择了一个随机整数,并返回该索引处的对象。下面的代码永远不会工作:
d = {-1: 10, 2: 20}
random.choice(d)
这有时会起作用:
d = {'a': 10, 0: 20}
random.choice(d)
在字典里找一个随机索引是没有任何意义的。
对于在字典中获取随机密钥,请执行以下操作:
d = {'a': 10, -1: 20, 90: -90}
random_key = random.choice(list(d))
在您的情况下,代码将是:
c = random.choice(list(mob.spells))