Skip to content

Instantly share code, notes, and snippets.

@Laski

Laski/score.py Secret

Last active September 7, 2020 20:32
Show Gist options
  • Save Laski/0ccd00de808b86022909e7afcc44f47d to your computer and use it in GitHub Desktop.
Save Laski/0ccd00de808b86022909e7afcc44f47d to your computer and use it in GitHub Desktop.
from collections import defaultdict
from typing import Dict, List
class Player:
def __init__(self, nick: str, ip: str):
self.nick = nick
self.ip = ip
class KillEvent:
def __init__(self, killer: Player, victim: Player):
self.killer = killer
self.victim = victim
class Match:
def __init__(self, players: List[Player]):
self.players = players
self.events: List[KillEvent] = []
def new_kill(self, killer: Player, victim: Player) -> None:
kill = KillEvent(killer, victim)
self.events.append(kill)
def score_table(self) -> Dict[str, int]:
score: Dict[str, int] = defaultdict(int) # esto inicializa todos los values en 0
for kill in self.events:
score[kill.killer.nick] += 1
score[kill.victim.nick] -= 1
return score
def score_for(self, player: Player) -> int:
score_table = self.score_table()
return score_table[player]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment