Guest User

Untitled

a guest
Aug 28th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.28 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import re
  4. import sys
  5.  
  6. RE = 'LUCAS_DAMAGE: (\S*) deals damage to (\S*) for ([0-9\-]*)'
  7.  
  8. entries = []
  9.  
  10. for line in sys.stdin:
  11.     m = re.match(RE, line)
  12.     if m:
  13.         entries.append((m.group(1),m.group(2),int(m.group(3))))
  14.  
  15. entries.sort()
  16.  
  17. last_attacker = None
  18. last_defender = None
  19. last_sum = None
  20. sums = []
  21. for (attacker,defender,damage) in entries:
  22.     if last_attacker != attacker or last_defender != defender:
  23.         if last_attacker and last_defender:
  24.             sums.append((last_attacker, last_defender, last_sum))
  25.         last_attacker = attacker
  26.         last_defender = defender
  27.         last_sum = damage
  28.     else:
  29.         last_sum += damage
  30.  
  31. print("--- SUMS ---")
  32. for x in sums:
  33.     print(x)
  34.  
  35. map_a = {}
  36. map_d = {}
  37.  
  38. for (attacker,defender,damage) in sums:
  39.     map_a[attacker] = map_a.get(attacker, []) + [(defender,damage)]
  40.     map_d[defender] = map_d.get(defender, []) + [(attacker,damage)]
  41.    
  42. for m in [map_a,map_d]:
  43.     for k in m:
  44.         m[k].sort(lambda (_,d1),(_2,d2):  cmp(d2,d1))
  45.  
  46. print("--- THREE TOP EASY KILLS FOR EACH ---")
  47. for k in map_a:
  48.     print(k + ": " + ','.join(map(str,map_a[k][0:3])))
  49.  
  50. print("--- THREE TOP DANGEROUS FOR EACH ---")
  51. for k in map_d:
  52.     print(k + ": " + ','.join(map(str,map_d[k][0:3])))
Add Comment
Please, Sign In to add comment