我试图创建一个程序,通过随机分配一个种族,职业和统计来创建一个角色
但是我希望每个属性都有一个唯一的值。所以如果strength
是8,那么其他属性都不能是8。我该怎么做呢?在进行选择时是否需要删除列表条目
我的代码
import random
races = ["Human", "Dwarf", "Elf"]
classes = ["Fighter", "Wizard", "Rogue"]
stats = [8, 10, 11, 12, 14, 15]
Strength = 0
Dexterity = 0
Constution = 0
Intelligence = 0
Wisdom = 0
Charisma = 0
Strength = random.choice(stats)
Dexterity = random.choice(stats)
Constution = random.choice(stats)
Intelligence = random.choice(stats)
Wisdom = random.choice(stats)
Charisma = random.choice(stats)
race = random.choice(races)
clse = random.choice(classes)
你给我们看的是一个角色的作品。但是如果我们想创造成百上千个呢。在Python中,所有东西都是一个类,在本例中,强烈建议使用它
看看这个简单的例子:
一个类可以保存变量和其他函数,在本例中,我们创建了三个变量(race、cls和stats),并添加了一个print函数来轻松打印我们所拥有的内容
当我运行它时返回这个:
创建
stats
列表的随机排列,然后按排列顺序分配Strength
、Dexterity
等。这样做还有一个额外的好处,即在创建新角色之前不需要重置列表作为旁注,没有必要将默认值
0
分配给Strength
等,因为它们将在之后立即更改就像你在问题中说的,你可以从列表中删除条目:
正如上面的答案所说,一个好的解决方案也是使用
random shuffle
。再加上一个提示,当你写的时候,例如Strength = random.choice(stats)
你声明了这个时刻的变量强度,并给它一个值,这样你就不必在上面声明它,这样你就可以删除所有的Strength = 0
等等相关问题 更多 >
编程相关推荐