1

如果标题没有意义,我很抱歉,但这就是我的意思。这是我的脚本的一部分。

Mage = "Mage"
Warrior = "Warrior"
Thief = "Thief"

skilltree = (Mage, Warrior, Thief)

print random.choice (skilltree)

现在说它随机选择了战士。在我的下一个脚本中,它将打印 7 个技能。但如果是随机选择盗贼或法师的话,那是七种完全不同的技能。所以我希望你获得的 7 种技能取决于随机选择的技能树。

谢谢。

4

3 回答 3

2

你已经完成了困难的部分。现在您只需将技能映射到每个类别。例如,使用字典:

skills = {'Mage': range(7), 'Warrior': range(7,14), 'Thief': range(14,21)}
choice = random.choice(skilltree)
print skills[choice]

这将打印与所选技能树关联的技能列表。我以前range只是为了说明,你可以有一个带有技能的字符串列表。

于 2013-08-19T02:58:50.213 回答
1

如果您不熟悉使用字典(就像他说的那样,使用字典可能是映射的最佳选择),我将用 Paulo 的示例进一步说明一下。

MageSkills = ["Mskill1", "Mskill2"]
ThiefSkills = ["Tskill1", "Tskill2"]
WarriorSkills = ["Wskill1", "Wskill2"]
skills = {'Warrior': WarriorSkills, 'Mage': MageSkills, 'Thief': ThiefSkills}

choice = 'Warrior'

print(skills[choice])
于 2013-08-19T03:09:35.667 回答
0

其他人已经概述了解决方案的一般概念,但我认为他们错过了您问题背后的关键误解,即如何保留您随机选择和打印的内容。就这一点而言,为了理解这就是我要做的:

import random

classes = ("Mage", "Warrior", "Thief")
skill_dictionary = {"Mage": ["Fireball", "Ice Blast"...], "Warrior": [...]} # etc
random_class = random.choice(classes) # Keep a version around for yourself
print random_class # print the version you just saved so you still have a copy
print skill_dictionary[random_class] #Then use the saved version to get the skill list

这里有一个重要的思想区别是将获取数据与显示数据分开。首先,您随机选择数据,只有在您已经拥有它之后,您才决定将其与您的打印语句一起显示给用户。

字典只是一个键/值存储(将键(您的类)映射到值(您的技能)的东西)。它恰好适合这个问题,但您可以通过其他方式实现它。

于 2013-08-19T13:19:04.673 回答