2013-08-19 52 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一個完全合理的假設。只有時間會告訴我們哪一個是對的。 –