+ 1
Помогите решить задачу Игра-Шутер
Не понимаю в чём ошибка Мой код 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
17 ответов
+ 2
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):
  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 == 'laser':
    	 a.hit()
    if x == 'gun':
    	 m.hit()
+ 1
This code:
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):
  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 == 'laser':
        a.hit() 
    if x == 'gun':
        m.hit()
    else:
        continue
!!!!
1)  write super class name :
  class Monster(Enemy):
  class Alien(Enemy):
2) end while code:
   if x == 'laser':
        a.hit() 
    if x == 'gun':
        m.hit()
    else:
        continue
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()
#edit :  какая задача? Helen ???? is this working fine? input " a or b or exit "
0
1. Унаследовать классы Alien и Monster из класса Enemy. - это есть в коде
2. Завершить цикл while, который беспрерывно принимает выбранное оружие из пользовательского ввода и вызывает метод hit() соответствующего объекта.-тоже. не понимаю в чём ошибка
0
ввод в какой форме? этот код не работает?
input in what form? is that code not working?
edit: did you tried my total code Helen 
what is your code identation for last one
вы пробовали мой общий код Хелен какова ваша кодовая идентификация для последнего
0
Да, что то не работает. Я ввела строки последние
 elif x == 'a' : a.hit()
    elif x == 'm' : m.hit()
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
 elif x=='a':
  a.hit()
 elif x=='m':
  m.hit()
 elif x =='exit':
  break
 else:
  continue
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
    elif x == 'a' : a.hit()
    elif x == 'm' : m.hit()
    elif x =='exit':
        break
    else:
        continue
0
iam выводит без ошибок. каков ваш вклад? и какое описание задачи на самом деле?
Helen iam getting output without errors. whats your input? 
and what is the task description actually?
0
1. Унаследовать классы Alien и Monster из класса Enemy. - это есть в коде
2. Завершить цикл while, который беспрерывно принимает выбранное оружие из пользовательского ввода и вызывает метод hit() соответствующего объекта.-тоже. не понимаю в чём ошибка
0
Мой вклад
elif x == 'a' : a.hit()
    elif x == 'm' : m.hit()
    elif x =='exit':
        break
    else:
        continue
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')
       exit(0)
    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()
"""
this works with sample input :
a
m
a
a
m
b
b
exit
copy above input lines(38 to 45) and paste in SL input and hit run.
is this about "alien has 5 hits , monster has 3 hits before they die ?"
or is it about aliens has 5 hits to kill monster and monster can only have 3 hits to kill alien ? because hit person losing lives? "
anyways code works !!! without error
"""
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 == 'laser' : a.hit()
    elif x == 'gun' : m.hit()
0
elif x == 'lazer' : a.hit()
elif x == 'gun' : m.hit()
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):
  def __init__(self):
    super().__init__('Monster', 3)
    
    def hit(self):
        super().hit()
class Alien(Enemy):
  def __init__(self):
    super().__init__('Alien', 5)
    
    def hit(self):
        super().hit()
m = Monster()
a = Alien()
while True:
    x = input()
    if x == 'exit':
        break
    elif x == 'laser':
      a.hit()
    elif x == 'gun':
      m.hit()
Читаем внимательно по строкам, сравниваем, дополняем- всё работает.



