Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.78 KB | None | 0 0
  1. # Задача - 1
  2. # Ранее мы с вами уже писали игру, используя словари в качестве
  3. # структур данных для нашего игрока и врага, давайте сделаем новую, но уже с ООП
  4.  
  5.  
  6. class Person:
  7.     # Опишите базовый класс Person, подумайте какие общие данные есть и у врага и у игрок
  8.     def __init__(self, health, damage, armor, name):
  9.         # У каждой сущности должы быть аттрибуты health, damage, armor
  10.         self.health = health
  11.         self.damage = damage
  12.         self.armor = armor
  13.         self.name = name
  14.  
  15.     # У каждой сущности должно быть 2 метода, один для подсчета урона, с учетом брони противника,
  16.     # второй для атаки противника.
  17.     def get_calculate_damage(self, armor):
  18.         return self.damage // armor
  19.  
  20.     def attack(self, who_defend):
  21.         atack = self.get_calculate_damage(who_defend.armor)
  22.         who_defend.health -= atack
  23.         print(f'{self.name} нанес {who_defend.name} урона {atack}, у того осталось {who_defend.health} жизней.')
  24.  
  25. # Теперь наследуясь от Person создайте 2 класса Player, Enemy.
  26.  
  27.  
  28. class Player(Person):
  29.     def __init__(self, health=100, damage=15, armor=10, name='Player'):
  30.         super().__init__(health, damage, armor, name)
  31.  
  32.  
  33. class Enemy(Person):
  34.     def __init__(self, health=80, damage=20, armor=4, name='Enemy'):
  35.         super().__init__(health, damage, armor, name)
  36.  
  37.  
  38. # Вам надо описать игровой цикл так же через класс.
  39. # Создайте экземпляры классов, проведите бой. Кто будет атаковать первым оставляю на ваше усмотрение.
  40.  
  41.  
  42. class Game():
  43.     def start_game(self):
  44.         # получаем наши структуры, через вышеописанную функцию
  45.         player = Player()
  46.         enemy = Enemy()
  47.  
  48.         # Запоминаем кто последний атаковал
  49.         last_attacker = player
  50.         while player.health > 0 and enemy.health > 0:
  51.             if last_attacker == player:
  52.                 enemy.attack(player) # враг был в скобках
  53.                 last_attacker = enemy
  54.             else:
  55.                 player.attack(enemy) # игрок был в скобках
  56.                 last_attacker = player
  57.  
  58.         if player.health > 0:
  59.             print('Игрок победил!')
  60.         else:
  61.             print('Враг победил!')
  62.  
  63.  
  64. x = Game()
  65. x.start_game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement