Advertisement
viligen

nether_realms

Nov 19th, 2021
1,064
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.03 KB | None | 0 0
  1. import re
  2.  
  3. demons = input().split(",")
  4. demons = [s.strip() for s in demons]
  5.  
  6. demons_dict = {}
  7.  
  8. pattern_health = r"[^0-9\+\-\/\*\.]"
  9. pattern_damage = r"([\*\/])?(-?\d+(\.\d+)?)?"
  10.  
  11. for demon in demons:
  12.     health = 0
  13.     damage = 0
  14.     multy_division = []
  15.     if demon not in demons_dict:
  16.         demons_dict[demon] = (0, 0)
  17.     str_health = re.findall(pattern_health, demon)
  18.     health = sum([ord(s) for s in str_health])
  19.  
  20.     matches_digits = re.finditer(pattern_damage, demon)
  21.     for match in matches_digits:
  22.         if match.group(1):
  23.             multy_division.append(match.group(1))
  24.         if match.group(2):
  25.             damage += float(match.group(2))
  26.     if multy_division:
  27.         for sign in multy_division:
  28.             if sign == "/":
  29.                 damage /= 2
  30.             elif sign == "*":
  31.                 damage *= 2
  32.     demons_dict[demon] = (health, damage)
  33.  
  34. sorted_demons = sorted(demons_dict.items())
  35. for dem, data in sorted_demons:
  36.     print(f"{dem} - {data[0]} health, {data[1]:.2f} damage")
  37.  
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement