-
-
Save Laski/0ccd00de808b86022909e7afcc44f47d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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