Advertisement
Chl_Snt

RPG Kirbay

Jan 19th, 2023
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. import random
  2.  
  3.  
  4. # класс игрока
  5. class Player:
  6. # конструктор класса, где задаются все характеристики главного героя
  7. def __init__(self, name, hp, damage):
  8. self.name = name
  9. self.hp = hp
  10. self.damage = damage
  11. self.lvl = 1
  12. self.exp = 0
  13.  
  14. # функция создания героя
  15.  
  16. # Выводим объект класса Player
  17.  
  18. # Функция атаки игрока на монстра
  19. def attack(self, victim):
  20. victim.hp -= self.damage
  21. if victim.hp <= 0:
  22. print(victim.name, 'Повержен!')
  23. return False
  24. else:
  25. print(victim.name, 'теперь иметт', victim.hp, 'очков здоровья')
  26. return True
  27.  
  28.  
  29. class Enemy:
  30. def __init__(self, name, hp, damage):
  31. self.name = name
  32. self.hp = hp
  33. self.damage = damage
  34.  
  35. def attack(self, victim):
  36. victim.hp -= self.damage
  37. if victim.hp <= 0:
  38. print('Ты повержен! Игра окончена!')
  39. quit()
  40. else:
  41. print(f'{victim.name}, оставшееся здоровье: {victim.hp}')
  42.  
  43.  
  44. def fight_choice():
  45. answer = input(f'Готов сразиться с {enemy.name}? (ответ "да" или "нет")').lower()
  46. if answer == "да":
  47. result = hero.attack(enemy)
  48. if result:
  49. enemy.attack(hero)
  50. fight_choice()
  51. elif answer == "нет":
  52. print(f'Вы сбежали от {enemy.name}')
  53. else:
  54. print('Будь внимательнее, ибо у меня нет такого варианта действий')
  55. fight_choice()
  56. # игровые списки
  57.  
  58.  
  59. def create_enemy():
  60. rnd_name = random.choice(enemy_name)
  61. rnd_hp = random.randint(10, 50)
  62. rnd_damage = random.randint(30, 70)
  63. return Enemy(rnd_name, rnd_hp, rnd_damage)
  64.  
  65.  
  66. def create_hero(name, species, prof):
  67. # создаем временные переменные для вывода в return
  68. hp = 0
  69. damage = 0
  70. name = name
  71. if species == species_list[0]:
  72. hp += 100
  73. damage += 50
  74. elif species == species_list[1]:
  75. hp += 50
  76. damage += 100
  77. else:
  78. print('Я не знаю кто ты...')
  79. if prof == prof_list[0]:
  80. hp += 100
  81. damage += 50
  82. elif prof == prof_list[1]:
  83. hp += 50
  84. damage += 100
  85. else:
  86. print('Я не знаю, какой ты професии...')
  87. return Player(name, hp, damage)
  88.  
  89.  
  90. species_list = ['эльф', 'гном']
  91. prof_list = ['лучник', 'воин']
  92. enemy_name = ['Баба Яга', 'Кощей', 'Волк']
  93. # настройка главного героя
  94. my_name = input('Введите имя для своего героя: ')
  95. print(f'Доступные расы:{species_list}')
  96. my_species = input('Выберите расу:').lower()
  97. print(f'Доступные профессии: {prof_list}')
  98. my_prof = input('Выберите профессию:').lower()
  99. hero = create_hero(my_name, my_species, my_prof)
  100. print(hero.name, hero.hp, hero.damage, hero.lvl, hero.exp)
  101. # главный цикл-движок
  102. enemy = create_enemy()
  103. print(enemy.name, enemy.hp, enemy.damage)
  104. fight_choice()
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement