- 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

16th Mar 2022, 3:09 PM
Helen
Helen - avatar
15 Réponses
+ 3
if x=='a': a.hit() elif x=='m': m.hit() elif x =='exit': break else: continue
16th Mar 2022, 7:08 PM
Shadoff
Shadoff - avatar
+ 1
Ошибка в том что, твоя итерация будет продолжаться вечно, пока не введешь выход. и ещё у тебя нет кода где чужой дрался бы с монстром
16th Mar 2022, 4:28 PM
Shadoff
Shadoff - avatar
0
elif x == 'a' : a.hit() elif x == 'm' : m.hit()
16th Mar 2022, 6:54 PM
Helen
Helen - avatar
0
Теперь ошибка-нет вывода.
16th Mar 2022, 7:14 PM
Helen
Helen - avatar
0
Попробуй обновленный код
16th Mar 2022, 7:19 PM
Shadoff
Shadoff - avatar
0
if x == 'a' : a.hit() elif x == 'm' : m.hit() elif x =='exit': break else: continue Ошибка также нет вывода
16th Mar 2022, 7:27 PM
Helen
Helen - avatar
0
Блин ты что с дуба рухнула??? Почему элсы и элифы внутри ИФА??? Они должны быть на одном уровне
16th Mar 2022, 7:30 PM
Shadoff
Shadoff - avatar
0
Хотябы просто копи пастить то умеешь? Скопируй мой текст с кодом и вставь в свой
16th Mar 2022, 7:32 PM
Shadoff
Shadoff - avatar
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
16th Mar 2022, 7:41 PM
Helen
Helen - avatar
0
Все на одном уровне.
16th Mar 2022, 7:41 PM
Helen
Helen - avatar
0
Ошибка та же!
16th Mar 2022, 7:42 PM
Helen
Helen - avatar
0
В питоне один отступ должен быть на один таб или 4 пробела. Что-то мне подсказывает что у тебя отступы кривые. И... убери второй иф так как весь код после вайла должен быть на один отступ, то после иф, элиф и элсе должны быть два отступа
16th Mar 2022, 7:48 PM
Shadoff
Shadoff - avatar
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
16th Mar 2022, 8:14 PM
Helen
Helen - avatar
0
После вайл один отступ, после елиф и елсе два. Что то не так...
16th Mar 2022, 8:15 PM
Helen
Helen - avatar