2016-05-15 36 views
0

何らかの理由で私のif文が意図したとおりのことをしません。なぜ私はそれが正しくフォーマットされていると確信しているのか分からない。文が関数を呼び出さない場合

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() 

私たちが見ている部分がある:

if enemy.health<=0: 
     win() 

私がなぜわからないが、それは敵の健康がゼロ以下の場合でも)(勝利を呼び出しません。

勝利機能:

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

任意のソリューションは、おかげで参考になります!

+0

'enemy.health <= 0'はどうやって知っていますか? – tjollans

+0

尋ねると、enemy.health <= 0?私はプレーヤーの健康状態と同じコードを持っていますし、die()関数にはうまくいきます。なぜ敵の健康がうまくいかないのか分かりません。 – Nicolas

+1

私が言っていることは、if文が実行されていないことです。最も簡単な説明は 'enemy.health'が0未満になることはないということです。 – tjollans

答えて

3

win()の直後にos.system('clear')と呼んだので、勝利メッセージは表示されません。

関連する問題