fork download
  1. import random
  2.  
  3. class Player:
  4. def __init__(self, name):
  5. self.name = name
  6. self.health = 100
  7.  
  8. def is_alive(self):
  9. return self.health > 0
  10.  
  11. def attack(self, other):
  12. damage = random.randint(10, 20)
  13. other.health -= damage
  14. print(f"{self.name} attacks {other.name} for {damage} damage!")
  15.  
  16. def game():
  17. players = [Player("Player 1"), Player("Player 2"), Player("Player 3"), Player("Player 4")]
  18. while len([player for player in players if player.is_alive()]) > 1:
  19. attacker = random.choice([player for player in players if player.is_alive()])
  20. defender = random.choice([player for player in players if player.is_alive() and player != attacker])
  21. attacker.attack(defender)
  22. print(f"{defender.name}'s health: {defender.health}")
  23. if not defender.is_alive():
  24. print(f"{defender.name} has been eliminated!")
  25. players.remove(defender)
  26. winner = [player for player in players if player.is_alive()][0]
  27. print(f"The winner is {winner.name}!")
  28.  
  29. game()
Success #stdin #stdout 0.09s 14308KB
stdin
BATLLE ROYAL  M
stdout
Player 3 attacks Player 4 for 14 damage!
Player 4's health: 86
Player 3 attacks Player 4 for 11 damage!
Player 4's health: 75
Player 3 attacks Player 1 for 13 damage!
Player 1's health: 87
Player 1 attacks Player 2 for 12 damage!
Player 2's health: 88
Player 1 attacks Player 4 for 18 damage!
Player 4's health: 57
Player 4 attacks Player 3 for 17 damage!
Player 3's health: 83
Player 1 attacks Player 3 for 16 damage!
Player 3's health: 67
Player 1 attacks Player 3 for 15 damage!
Player 3's health: 52
Player 4 attacks Player 2 for 18 damage!
Player 2's health: 70
Player 4 attacks Player 2 for 11 damage!
Player 2's health: 59
Player 4 attacks Player 2 for 12 damage!
Player 2's health: 47
Player 3 attacks Player 1 for 18 damage!
Player 1's health: 69
Player 1 attacks Player 4 for 16 damage!
Player 4's health: 41
Player 2 attacks Player 4 for 18 damage!
Player 4's health: 23
Player 4 attacks Player 1 for 14 damage!
Player 1's health: 55
Player 3 attacks Player 2 for 15 damage!
Player 2's health: 32
Player 1 attacks Player 2 for 19 damage!
Player 2's health: 13
Player 3 attacks Player 4 for 20 damage!
Player 4's health: 3
Player 3 attacks Player 2 for 19 damage!
Player 2's health: -6
Player 2 has been eliminated!
Player 4 attacks Player 3 for 11 damage!
Player 3's health: 41
Player 4 attacks Player 3 for 15 damage!
Player 3's health: 26
Player 3 attacks Player 4 for 12 damage!
Player 4's health: -9
Player 4 has been eliminated!
Player 1 attacks Player 3 for 16 damage!
Player 3's health: 10
Player 1 attacks Player 3 for 16 damage!
Player 3's health: -6
Player 3 has been eliminated!
The winner is Player 1!