from datetime import datetime from src.game import Game from src.ladder import Ladder from src.player import Player from src.strategy import SimpleEloChangeStrategy ladder = Ladder() ladder.strategy = SimpleEloChangeStrategy() games: list[Game] = [ Game( datetime.fromisoformat("2022-11-11 16:30"), { Player.Theo: 53, Player.Leila: 32, Player.Clementine: 53, Player.Emma: 48, Player.Kim: 50, Player.Martin: 51, }, ), Game( datetime.fromisoformat("2022-11-11 17:00"), { Player.Emma: 53, Player.Kim: 57, Player.Pierre: 48, Player.Theo: 44, Player.Leila: 32, Player.Martin: 57, }, ), Game( datetime.fromisoformat("2022-11-11 18:45"), { Player.Thomas: 58, Player.Baptiste: 45, Player.Pierre: 54, Player.Theo: 65, Player.Emma: 42, Player.Martin: 53, }, ), Game( datetime.fromisoformat("2022-11-11 21:00"), { Player.Kim: 50, Player.Theo: 50, Player.Emma: 53, Player.Clementine: 55, Player.Pierre: 46, Player.Baptiste: 54, }, ), Game( datetime.fromisoformat("2022-11-11 21:30"), { Player.Kim: 41, Player.Leila: 32, Player.Theo: 48, Player.Emma: 49, Player.Clementine: 52, Player.Pierre: 54, Player.Baptiste: 59, }, ), Game( datetime.fromisoformat("2022-11-11 22:00"), {Player.Clementine: 47, Player.Pierre: 46, Player.Theo: 57, Player.Emma: 42}, ), Game( datetime.fromisoformat("2022-11-11 22:32"), {Player.Clementine: 43, Player.Pierre: 51, Player.Theo: 40, Player.Emma: 39}, ), Game( datetime.fromisoformat("2022-11-12 12:48"), { Player.Pierre: 58, Player.Theo: 52, Player.Emma: 59, Player.Thomas: 50, Player.Baptiste: 52, }, ), Game( datetime.fromisoformat("2022-11-12 13:18"), {Player.Emma: 41, Player.Theo: 53, Player.Pierre: 44}, ), Game( datetime.fromisoformat("2022-11-12 13:47"), {Player.Emma: 65, Player.Thomas: 59, Player.Pierre: 54}, ), Game( datetime.fromisoformat("2022-11-12 14:15"), {Player.Pierre: 57, Player.Emma: 52, Player.Martin: 45, Player.Clementine: 47}, ), Game( datetime.fromisoformat("2022-11-12 14:47"), {Player.Pierre: 51, Player.Emma: 47, Player.Clementine: 56}, ), Game( datetime.fromisoformat("2022-11-12 19:06"), { Player.Clementine: 43, Player.Kim: 47, Player.Theo: 13, Player.Pierre: 47, Player.Emma: 62, }, ), Game( datetime.fromisoformat("2022-11-13 12:31"), { Player.Theo: 43, Player.Thomas: 37, Player.Tanguy: 44, Player.Pierre: 47, Player.Emma: 61, }, ), Game( datetime.fromisoformat("2022-11-13 12:54"), { Player.Tanguy: 54, Player.Clementine: 47, Player.Theo: 65, Player.Thomas: 44, Player.Pierre: 60, Player.Kim: 58, Player.Emma: 46, }, ), Game( datetime.fromisoformat("2022-11-13 13:25"), {Player.Pierre: 52, Player.Emma: 68, Player.Clementine: 57}, ), Game( datetime.fromisoformat("2023-01-02 10:00"), { Player.Felix: 34, Player.Frost: 64, Player.Thomas: 51, Player.Baptiste: 53, Player.Emma: 68, }, ), Game( datetime.fromisoformat("2023-01-02 10:30"), {Player.Felix: 64, Player.Frost: 55, Player.Thomas: 62, Player.Emma: 67}, ), Game( datetime.fromisoformat("2023-02-19 12:00"), { Player.Thomas: 56, Player.Axel: 53, Player.Emma: 61, Player.Theo: 57, Player.Pierre: 55, Player.Martin: 36, }, ), Game( datetime.fromisoformat("2023-02-19 12:35"), { Player.Thomas: 50, Player.Emma: 62, Player.Theo: 62, } ) ] for game in games: print(game) print("=" * 30) players_elo_updates = ladder.proccess_game(game) for (player, elo_update) in players_elo_updates.items(): print( f"\t{player.value:<20}{int(elo_update):+}\t({ladder.players[player].elo:>4d})", ) ladder.print_current()