2014-06-13 268 views
1

我不太確定怎麼說這個,但我會盡我所能。我爲殭屍創建了一個函數,另一個用於攻擊。但我不知道如何將殭屍函數的參數傳遞給攻擊函數。此外,如果有更多的技術方法來說出這個請讓我知道。這是我的測試代碼,我相信這個社區將能夠弄清楚我的意思。最終目標是創建一個功能,讓我可以插入怪物名稱,並通過戰鬥功能運行指定的參數(健康,防禦等)。即def combat(monster_name):任何和所有的意見是非常感謝。謝謝!將函數的參數傳遞給另一個函數?

#Functions 
def zombie(): 
    global zombie_hp 
    zombie_hp = 10 
    print "Zombie encounter" 
    print "Current Health:", zombie_hp 
def attack(monster): 
    if monster > 0: 
     while monster > 0: 
      user_action = raw_input("Do you attack the zombie? [y]: ") 
      if user_action == "y": 
       monster_hp = monster_hp - 1 
       print "Health remaining: ", monster_hp 

def user_action(): 
    global user_action 
    user_action = raw_input("Do you attack the zombie? [y]: ") 




# Zombie Encounter (attack_testing) 
attack(zombie()) 
if zombie_hp == 0: 
    print "Zombie Defeated" 
+0

如果你所定義的內部攻擊功能每個殭屍的HP和防禦殭屍功能?這樣攻擊函數就可以訪問它的外部函數zombie函數的範圍。 –

+0

經驗法則:當你的東西是一個名詞時,它應該是一個類。當你的東西是一個動詞時,它應該是一個函數。在這裏,你想要一個包含函數攻擊的類殭屍(),(自我,...) –

+1

嗯,我想我現在需要看類。一次學習這一行,並試圖實現我學習的每一件新事物。 –

回答

0

我建議你使用一個class

class Zombie: 
    def __init__(self): 
      self.defense = 10 
      self.hp = 100 
    def hit(self, hp): 
      self.hp-=hp 
    def upgrade(self, level): 
      self.defense+=level 

這會記得您創建

>>> Max = Zombie() 
>>> Max.hit(17) 
>>> Max.upgrade(2) 
>>> Max.hp 
83 
>>> Max.defense 
12 
>>> 
+0

當我創建一個殭屍班時,我如何通過戰鬥實現它? –

+0

您可以使用'hit()'方法。你可以讓用戶按下一個鍵來打擊,並造成一定數量的傷害。 –

+0

Max可能是你可能爲殭屍選擇的最糟糕的名字,哈哈。 –

相關問題