aboutsummaryrefslogtreecommitdiff
path: root/strategy.py
diff options
context:
space:
mode:
Diffstat (limited to 'strategy.py')
-rw-r--r--strategy.py36
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