Advertisement
viligen

heroes_of_code_and_logic_2

Dec 4th, 2021
1,076
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. n = int(input())
  2. party = {}
  3. for _ in range(n):
  4.     hero, hp, mp = input().split()
  5.     party[hero] = {"HP": int(hp), "MP": int(mp)}
  6.  
  7. while True:
  8.     command = input().split(" - ")
  9.     if command[0] == "End":
  10.         break
  11.     elif command[0] == "CastSpell":
  12.         hero, mp_needed, spell = command[1:]
  13.         mp_needed = int(mp_needed)
  14.         if party[hero]["MP"] >= mp_needed:
  15.             party[hero]["MP"] -= mp_needed
  16.             print(f"{hero} has successfully cast {spell} and now has {party[hero]['MP']} MP!")
  17.         else:
  18.             print(f"{hero} does not have enough MP to cast {spell}!")
  19.     elif command[0] == "TakeDamage":
  20.         hero, damage, attacker = command[1:]
  21.         damage = int(damage)
  22.         party[hero]['HP'] -= damage
  23.         if party[hero]['HP'] > 0:
  24.             print(f"{hero} was hit for {damage} HP by {attacker} and now has {party[hero]['HP']} HP left!")
  25.         else:
  26.             del party[hero]
  27.             print(f"{hero} has been killed by {attacker}!")
  28.     elif command[0] == "Recharge":
  29.         hero = command[1]
  30.         amount = int(command[2])
  31.         if party[hero]['MP'] + amount > 200:
  32.             amount = 200 - party[hero]['MP']
  33.         party[hero]['MP'] += amount
  34.         print(f"{hero} recharged for {amount} MP!")
  35.     elif command[0] == "Heal":
  36.         hero = command[1]
  37.         amount = int(command[2])
  38.         if party[hero]['HP'] + amount > 100:
  39.             amount = 100 - party[hero]['HP']
  40.         party[hero]['HP'] += amount
  41.         print(f"{hero} healed for {amount} HP!")
  42.  
  43. sorted_heroes = sorted(party.items(), key=lambda kvp: (-kvp[1]['HP'], kvp[0]))
  44.  
  45. for hero, data in sorted_heroes:
  46.     print(f"""{hero}
  47.  HP: {data['HP']}
  48.  MP: {data['MP']}""")
  49.  
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement