Advertisement
Guest User

Untitled

a guest
Feb 7th, 2020
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.09 KB | None | 0 0
  1. import random
  2.  
  3.  
  4. # 1 ход в бою
  5. def fight_round(hit, name):
  6.     enemy_def = random.choice(['left', 'up', 'right'])
  7.     print(name, ' защитил: ', enemy_def)
  8.     if hit == enemy_def:
  9.         return True
  10.     else:
  11.         return False
  12.  
  13. # бой
  14. def fight(player, enemy):
  15.  
  16.     print(enemy.message1)  # сообщение о начале боя
  17.  
  18.     while True:
  19.         print('Выбирите куда ударять [left, up, right]')
  20.         hit = input()  # ввод игрока
  21.  
  22.         # проверка на правильность ввода
  23.         if hit.lower() not in ['left', 'up', 'right']:
  24.             continue
  25.         else:
  26.             # если удары героя и врага совпали
  27.             if fight_round(hit.lower(), enemy.name):
  28.                 player.life = player.life - 1
  29.                 print('Герой получил по шее, у него осталось {} хитов'.format(player.life))
  30.  
  31.             # если не совпали
  32.             else:
  33.                 enemy.life = enemy.life - 1
  34.                 print('Герой ударил {}, {} осталось {} хитов'.format(enemy.name4, enemy.name3, enemy.life))
  35.  
  36.         # условия завершения боя
  37.         if player.life <= 0:
  38.             print('Бой закончен. Вы умерли.')
  39.             break
  40.         elif enemy.life <= 0:
  41.             print('Бой закончен. Вы победили')
  42.             break
  43.  
  44.  
  45. # класс для героя
  46. class Player():
  47.  
  48.     # инвентарь
  49.     inventory = {}
  50.  
  51.     # инициализация параметров героя (пока только жизнь по умолчанию)
  52.     def __init__(self, life=6):
  53.         self.life = life
  54.  
  55.  
  56. # класс для врагов
  57. class Enemy():
  58.  
  59.     # типы врагов и их параметры
  60.     enemy_type = {'rat': (3, 'крыса', 'с крысой', 'у крысы', 'по крысе'),
  61.                   'skelet': (5, 'скелет', 'со скелетом', 'у скелета', 'по скелету'),
  62.                   'zombi': (7, 'зомби', 'с зомби', 'у зомби', 'по зомби')
  63.                   }
  64.  
  65.     def __init__(self, name):
  66.         # инициализация параметров врага в зависимости от его типа
  67.         self.life = self.enemy_type[name][0]
  68.         self.name = self.enemy_type[name][1]
  69.         self.name2 = self.enemy_type[name][2]
  70.         self.name3 = self.enemy_type[name][3]
  71.         self.name4 = self.enemy_type[name][4]
  72.         self.message1 = 'Вы вступайте в бой {}'.format(self.enemy_type[name][2])
  73.  
  74.  
  75. def main():
  76.     player = Player(life=6)  # герой
  77.     enemy = Enemy('zombi')  # враг
  78.  
  79.     fight(player, enemy)  # бой
  80.  
  81.     print('После боя у Вас осталось {} хитов'.format(player.life))
  82.  
  83.     # пример работы с инвентарем
  84.     print('Вы нашли меч')
  85.     player.inventory['меч'] = 1
  86.  
  87.     print(player.inventory)
  88.  
  89.  
  90. if __name__ == '__main__':
  91.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement