from datetime import datetime from game import Game from ladder import Ladder from player import Player from strategy import SimpleEloChangeStrategy ladder = Ladder() ladder.strategy = SimpleEloChangeStrategy() games: list[Game] = [ Game( datetime(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(2022, 11, 11, 17, 0), { Player.Emma: 53, Player.Kim: 57, Player.Pierre: 48, Player.Theo: 44, Player.Leila: 32, Player.Martin: 57, }, ), Game( datetime(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(2022, 11, 11, 21, 0), { Player.Kim: 50, Player.Theo: 50, Player.Emma: 53, Player.Clementine: 55, Player.Pierre: 46, Player.Baptiste: 54, }, ), Game( datetime(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(2022, 11, 11, 22, 0), {Player.Clementine: 47, Player.Pierre: 46, Player.Theo: 57, Player.Emma: 42}, ), Game( datetime(2022, 11, 11, 22, 32), {Player.Clementine: 43, Player.Pierre: 51, Player.Theo: 40, Player.Emma: 39}, ), Game( datetime(2022, 11, 12, 12, 48), { Player.Pierre: 58, Player.Theo: 52, Player.Emma: 59, Player.Thomas: 50, Player.Baptiste: 52, }, ), Game( datetime(2022, 11, 12, 13, 18), {Player.Emma: 41, Player.Theo: 53, Player.Pierre: 44}, ), Game( datetime(2022, 11, 12, 13, 47), {Player.Emma: 65, Player.Thomas: 59, Player.Pierre: 54}, ), Game( datetime(2022, 11, 12, 14, 15), {Player.Pierre: 57, Player.Emma: 52, Player.Martin: 45, Player.Clementine: 47}, ), Game( datetime(2022, 11, 12, 14, 47), {Player.Pierre: 51, Player.Emma: 47, Player.Clementine: 56}, ), Game( datetime(2022, 11, 12, 19, 6), { Player.Clementine: 43, Player.Kim: 47, Player.Theo: 13, Player.Pierre: 47, Player.Emma: 62, }, ), Game( datetime(2022, 11, 13, 12, 31), { Player.Theo: 43, Player.Thomas: 37, Player.Tanguy: 44, Player.Pierre: 47, Player.Emma: 61, }, ), Game( datetime(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(2022, 11, 13, 13, 25), {Player.Pierre: 52, Player.Emma: 68, Player.Clementine: 57}, ), Game( datetime(2023, 1, 2, 10, 0), { Player.Felix: 34, Player.Frost: 64, Player.Thomas: 51, Player.Baptiste: 53, Player.Emma: 68, }, ), Game( datetime(2023, 1, 2, 10, 30), {Player.Felix: 64, Player.Frost: 55, Player.Thomas: 62, Player.Emma: 67}, ), Game( datetime(2023, 2, 19, 12, 0), { Player.Thomas: 56, Player.Axel: 53, Player.Emma: 61, Player.Theo: 57, Player.Pierre: 55, Player.Martin: 36, }, ), ] 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()