Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. import random
  2.  
  3.  
  4. class Player:
  5. def __init__(self, name):
  6. self.name = name
  7. self.hp = 100
  8. self.skills = {
  9. 'punch': (18, 25),
  10. 'kick': (15, 35),
  11. 'healing': (18, 25)
  12. }
  13.  
  14. def choice_skill(self):
  15. name = random.choice(list(self.skills.keys()))
  16. return name
  17.  
  18. def healing_skill(self, skill_name, damage):
  19. self.hp = self.hp + damage
  20. if self.hp > 100:
  21. self.hp = 100
  22. return "Player {} used the '{}', healing {} hp".format(self.name, skill_name, damage)
  23.  
  24. def attack(self, target):
  25. skill_name = self.choice_skill()
  26. print(skill_name)
  27. damage = random.randint(*self.skills.get(skill_name))
  28.  
  29. if skill_name == 'healing':
  30. self.healing_skill(skill_name, damage)
  31. else:
  32. target.hp = target.hp - damage
  33.  
  34. if target.hp < 0:
  35. target.hp = 0
  36.  
  37. return "Player {} used the '{}', damage {} hp".format(self.name, skill_name, damage)
  38.  
  39.  
  40. class Computer(Player):
  41. def choice_skill(self):
  42. if self.hp <= 35:
  43. name_dict = random.choices(list(self.skills.keys()), [0.1, 0.1, 0.8])
  44. name = name_dict[0]
  45. print(type(name))
  46. return name
  47. name = random.choice(list(self.skills.keys()))
  48. return name
  49.  
  50.  
  51. class Battle:
  52. def __init__(self, player, computer):
  53. self.obj_player = player
  54. self.obj_computer = computer
  55.  
  56. def battle_start(self):
  57. while self.obj_player.hp > 0 and self.obj_computer.hp > 0:
  58. random_choice = random.choice((self.obj_player, self.obj_computer))
  59.  
  60. if random_choice == self.obj_player:
  61. print(random_choice.attack(self.obj_computer))
  62. else:
  63. print(random_choice.attack(self.obj_player))
  64.  
  65. print("------------------")
  66. print("{} Health: {} hp".format(self.obj_player.name, self.obj_player.hp))
  67. print("{} Health: {} hp".format(self.obj_computer.name, self.obj_computer.hp))
  68. print("------------------")
  69.  
  70. return "Game Over"
  71.  
  72. def game_over(self):
  73. if self.obj_player.hp == 0:
  74. return "{} - WIN! {} - LOSE! ".format(self.obj_computer.name, self.obj_player.name)
  75. else:
  76. return "{} - WIN! {} - LOSE! ".format(self.obj_player.name, self.obj_computer.name)
  77.  
  78.  
  79. class Game:
  80. player = Player('Jon')
  81. computer = Computer('Vasya')
  82.  
  83. battle = Battle(player, computer)
  84. print(battle.battle_start())
  85. print(battle.game_over())
  86.  
  87.  
  88. Game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement