2015-10-12 4 views
-3

Вот мой код в python 3.4 он просто продолжает цикл, пока система не выйдет, когда игрок умрет. Это часть игры с rpg, что делает для удовольствияКогда мое условное значение ложно, когда оно становится истинным, почему бы не остановить цикл

Не весь код, пожалуйста, обратите внимание, если вы хотели бы видеть весь код, пожалуйста, спросите только боевую функцию, показанную

def combat(h, a, d, x): 
    global attack 
    global health 
    global defence 
    global xp 
    death = False 
    while death == False: 
     eab = random.randint(1, 10) 
     yab = random.randint(1, 10) 
     cattack = 0 
     cdefence = 0 
     cattack = attack 
     cdefence = defence 
     cattack = cattack + yab 
     a = a + eab 
     d = d - cattack 
     print("you strike for " + str(cattack) + " damage") 
     cattack = cattack - d 
     if cattack > 0: 
      h = h - cattack 
     if d > 0: 
      print("the enemy has " + str(d) + "defence left") 
     if h > 0: 
      print("the enemy has " + str(h) + "Health left") 
     else : 
      print("the enemy dies") 
      death == True 
      xp = xp + x 
     print("they strike back for " + str(a)) 
     cdefence = cdefence - a 
     a = a - cdefence 
     if a > 0: 
      health = health - a 
     if cdefence > 0: 
      print("you have " + str(cdefence) + " defence left!") 
     if health > 0: 
      print("you have " + str(health) + " health left") 
     else : 
      sys.exit("YOU DIED A HORRIBLE DEATH") 
+7

'death == True'. Вы не назначаете 'True''' death', вы просто сравниваете их. –

ответ

0

Ваша проблема с этой линии: death == True

Это сравнивает variab le 'death' с функцией True, которая никогда не будет работать. Вместо этого вам нужно заменить death = True.

Это должно исправить ваш код.