2013-08-19 46 views
1

如果标题没有意义,我很抱歉,但这就是我的意思。这是我的脚本的一部分。如何根据Python中的随机打印打印不同的项目?

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

skilltree = (Mage, Warrior, Thief) 

print random.choice (skilltree) 

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

谢谢。

回答

2

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

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

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

1

我只是稍微进一步说明Paulo的例子,以防你不熟悉使用字典(和他说的使用字典可能是映射的最佳选择)。

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

choice = 'Warrior' 

print(skills[choice]) 
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 

的一个重要思想的区别,以这里是分开显示它获得的数据。首先你会随机选择数据,并且只有在你已经拥有数据后才决定使用打印语句将其显示给用户。

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

+0

我认为真正的问题是技能到选择的映射,但我编辑了我的答案,以显示“选择”变量来自哪里,以防万一您是对的。 –

+0

@PauloAlmeida一个完全合理的假设。只有时间会告诉我们哪一个是对的。 –