- 4
Помогите решить задачу Игра-Шутер
Не понимаю в чём ошибка Мой код class Enemy: name = "" lives = 0 def __init__(self, name, lives): self.name = name self.lives = lives def hit(self): self.lives -= 1 if self.lives <= 0: print(self.name + ' killed') else: print(self.name + 'has'+ str(self.lives) + ' lives') class Monster: def __init__(self): super().__init__('Monster', 3) class Alien: def __init__(self): super().__init__('Alien', 5) m = Monster() a = Alien() while True: x = input() if x == 'exit': break
15 ответов
+ 3
if x=='a':
    a.hit()
elif x=='m':
    m.hit()
elif x =='exit':
    break
else:
    continue
+ 1
Ошибка в том что, твоя итерация будет продолжаться вечно, пока не введешь выход.
и ещё у тебя нет кода где чужой дрался бы с монстром
0
elif x == 'a' : a.hit()
    elif x == 'm' : m.hit()
0
Теперь ошибка-нет вывода.
0
Попробуй обновленный код
0
if x == 'a' : a.hit()
    elif x == 'm' : m.hit()
    elif x =='exit':
        break
    else:
        continue
Ошибка  также нет вывода
0
Блин ты что с дуба рухнула???
Почему элсы и элифы внутри ИФА???
Они должны быть на одном уровне
0
Хотябы просто копи пастить то умеешь? Скопируй мой текст с кодом и вставь в свой
0
class Enemy:
  name = ""
  lives = 0
  def __init__(self, name, lives):
    self.name = name
    self.lives = lives
  def hit(self):
    self.lives -= 1
    if self.lives <= 0:
       print(self.name + ' killed')
    else:
        print(self.name + ' has '+ str(self.lives) + ' lives')
class Monster(Enemy): #base class Enemy
  def __init__(self):
    super().__init__('Monster', 3)
class Alien(Enemy) :
  def __init__(self):
    super().__init__('Alien', 5)
m = Monster()
a = Alien()
while True:
    x = input()
    if x == 'exit':
        break
    if x=='a':
     a.hit()
    elif x=='m':
     m.hit()
    elif x =='exit':
     break
    else:
     continue
0
Все на одном уровне.
0
Ошибка та же!
0
В питоне один отступ должен быть на один таб или 4 пробела. Что-то мне подсказывает что у тебя отступы кривые. И... убери второй иф
так как весь код после вайла должен быть на один отступ, то после иф, элиф и элсе  должны быть два отступа
0
class Enemy:
  name = ""
  lives = 0
  def __init__(self, name, lives):
    self.name = name
    self.lives = lives
  def hit(self):
    self.lives -= 1
    if self.lives <= 0:
       print(self.name + ' killed')
    else:
        print(self.name + ' has '+ str(self.lives) + ' lives')
class Monster(Enemy): #base class Enemy
  def __init__(self):
    super().__init__('Monster', 3)
class Alien(Enemy) :
  def __init__(self):
    super().__init__('Alien', 5)
m = Monster()
a = Alien()
while True:
 x = input()
 if x == 'exit':
  break
 elif x=='a':
  a.hit()
 elif x=='m':
  m.hit()
 elif x =='exit':
  break
 else:
  continue
0
После вайл один отступ, после елиф и елсе два. Что то не так...



