2014-06-13 366 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可能是你可能为僵尸选择的最糟糕的名字,哈哈。 –

相关问题