2017-07-06 9 views
-3

基本的に私はこの素敵なドラゴンレルムの例題をコーディングして見ました。私が戦闘に参加したい段階に達するまで、すべてがうまくいった。戦闘機能の開発に取り掛かった

def cave_2_fight(): 
     def monster_hit(): 
      m_hit = random.randint(1, 11) 
      return m_hit 

     def player_hit(): 
      p_hit = random.randint(1, 11) 
      return p_hit 

     monster_hp = random.randint(1, 101) 
     player_hp = 100 
     print("You are being attacked by a goblin with {} hp".format(monster_hp)) 
     print("Getting ready text") 
     while monster_hp != 0 or player_hp != 0: 
      attack_area = input("Where do you want to hit him[top or mid or bot]: ") 
      if attack_area == 'top': 
       p_dmg = player_hit() 
       m_dmg = monster_hit() 
       print('You hit goblin for {} and he hits you for {}'.format(p_dmg, m_dmg)) 
       player_hp = player_hp - m_dmg 
       monster_hp = monster_hp - p_dmg 
       return player_hp, monster_hp 

      elif attack_area == "mid": 
       p_dmg = player_hit() 
       m_dmg = monster_hit() 
       print('You hit goblin for {} and he hits you for {}'.format(p_dmg, m_dmg)) 
       player_hp = player_hp - m_dmg 
       monster_hp = monster_hp - p_dmg 

私はそれが少しランダムになりたい、とイムは本当に私が初めてnegaged後attack_areaを選ぶに戻るで立ち往生。事前に感謝します

+0

私はとても熱心になっていますが、なぜですか? –

答えて

1
   return player_hp, monster_hp 

機能を終了します。あなたはこの行を削除する必要があります - monster_hpとplayer_hpはそれなしで更新されます。それが誰かのHPが負になる可能性がありますので、

また、あなたはおそらく

while monster_hp > 0 or player_hp > 0: 

while monster_hp != 0 or player_hp != 0: 

を変更する必要があります。いずれかのプレイヤーが死亡するたびにゲームを終了したい場合は、「または」を「と」に変更してください(これで両方が生きている必要があります)。

a)はっきりしないあなたのコードの問題は(私が推測した)とb)あなたが投稿したコードはMCVEではありません。最初の行には構文エラーがあります(これはコピー貼り付けのインデント問題です)。

+0

まず、返信いただきありがとうございます。私は今後、より正確に私の質問に挑戦します。私のコピーのエラーを修正し、あなたのソリューションは完璧に動作しました。ありがとうalot m8! –

関連する問題