Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import re
- import sys
- RE = 'LUCAS_DAMAGE: (\S*) deals damage to (\S*) for ([0-9\-]*)'
- entries = []
- for line in sys.stdin:
- m = re.match(RE, line)
- if m:
- entries.append((m.group(1),m.group(2),int(m.group(3))))
- entries.sort()
- last_attacker = None
- last_defender = None
- last_sum = None
- sums = []
- for (attacker,defender,damage) in entries:
- if last_attacker != attacker or last_defender != defender:
- if last_attacker and last_defender:
- sums.append((last_attacker, last_defender, last_sum))
- last_attacker = attacker
- last_defender = defender
- last_sum = damage
- else:
- last_sum += damage
- print("--- SUMS ---")
- for x in sums:
- print(x)
- map_a = {}
- map_d = {}
- for (attacker,defender,damage) in sums:
- map_a[attacker] = map_a.get(attacker, []) + [(defender,damage)]
- map_d[defender] = map_d.get(defender, []) + [(attacker,damage)]
- for m in [map_a,map_d]:
- for k in m:
- m[k].sort(lambda (_,d1),(_2,d2): cmp(d2,d1))
- print("--- THREE TOP EASY KILLS FOR EACH ---")
- for k in map_a:
- print(k + ": " + ','.join(map(str,map_a[k][0:3])))
- print("--- THREE TOP DANGEROUS FOR EACH ---")
- for k in map_d:
- print(k + ": " + ','.join(map(str,map_d[k][0:3])))
Add Comment
Please, Sign In to add comment