简体   繁体   English

如果语句不调用函数

[英]If statement not calling function

For some reason my if statement won't do what it is meant to do. 由于某种原因,我的if语句将无法执行其应做的工作。 I am not sure as to why as i'm sure that I have formatted it correctly. 我不确定为什么,因为我确定我已经正确格式化了。

def attack():
    os.system('clear')
    pAttack=random.randint(playerIG.attack/2, playerIG.attack)
    eAttack=random.randint(enemy.attack/2, enemy.attack)
    if pAttack==playerIG.attack/2:
        print "You miss!"
    else:
        enemy.health-=pAttack
        print "You deal %s damage" % pAttack
    option=raw_input("")
    if enemy.health<=0:
        win()
    os.system('clear')
    if eAttack==enemy.attack/2:
        print "The enemy missed!"
    else:
        playerIG.health-=eAttack
        print "The enemy deals %s damage" % eAttack
    option=raw_input("")
    if playerIG.health<=0:
        die()
    else:
        fight()

The part we are looking at is: 我们正在看的部分是:

if enemy.health<=0:
        win()

I'm not sure why but it won't call win() even when the enemy health is below zero. 我不知道为什么,但是即使敌人的生命值低于零,它也不会调用win()。

Win function: 赢功能:

def win():
    print "You have successfully killed the %s!" % enemy.name
    print "You have gained %s gold!" % enemy.goldgain

Any solution will be helpful, thanks! 任何解决方案都会有所帮助,谢谢!

您在win()之后立即调用os.system('clear') ,因此您不会看到win消息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM