diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2023-02-19 12:57:27 +0100 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2023-02-19 12:57:27 +0100 |
| commit | 7200fcf3f4e4c22193b5b96452f9aa5131b1bc1c (patch) | |
| tree | 812cf7b0f7a25b865d694199e9e4d29714a72fd3 /strategy.py | |
| parent | 4f87f915ef7c6b8f20f70d35ff675059326680bd (diff) | |
refactor: Move to src
Diffstat (limited to 'strategy.py')
| -rw-r--r-- | strategy.py | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/strategy.py b/strategy.py deleted file mode 100644 index 5f42e3f..0000000 --- a/strategy.py +++ /dev/null @@ -1,36 +0,0 @@ -from typing import Protocol - -from game import Game -from player import Player - - -class GameEloChangeStrategy(Protocol): - def proccess_game( - self, game: Game, current_elo: dict[Player, int], - ) -> dict[Player, float]: - ... - - -class SimpleEloChangeStrategy(GameEloChangeStrategy): - D = 400 - K = 32 - - def proccess_game( - self, game: Game, current_elo: dict[Player, int], - ) -> dict[Player, float]: - players_elo_updates = {player: 0.0 for player in game.scores} - - for player_1, score_1 in game.scores.items(): - for player_2, score_2 in game.scores.items(): - if player_1 != player_2: - expected_score = 1 / ( - 1 - + 10 - ** ((current_elo[player_2] - current_elo[player_1]) / self.D) - ) - result = ( - 1.0 if score_1 > score_2 else 0.0 if score_1 < score_2 else 0.5 - ) - players_elo_updates[player_1] += self.K * (result - expected_score) - - return players_elo_updates |
