diff options
| author | Karan Jayachandra <mail@karanjayachandra.com> | 2024-12-02 19:33:48 +0100 |
|---|---|---|
| committer | Karan Jayachandra <mail@karanjayachandra.com> | 2024-12-02 19:33:48 +0100 |
| commit | beea33bc183837a3feceaf1b5127c2e21e16fc36 (patch) | |
| tree | ed0d9b5f4e3ad600f8d498227323576800983608 /src/match_up/utilities.py | |
| parent | 6ebbee2016b0232573ad1d322b4d4ca6287b3599 (diff) | |
Added team based games
Diffstat (limited to 'src/match_up/utilities.py')
| -rw-r--r-- | src/match_up/utilities.py | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/src/match_up/utilities.py b/src/match_up/utilities.py index 9fc31fa..dd9568c 100644 --- a/src/match_up/utilities.py +++ b/src/match_up/utilities.py @@ -1,13 +1,11 @@ +from math import floor from typing import Tuple -from pandas import read_csv from random import shuffle +from pandas import read_csv from random import randint, getrandbits from names import get_first_name, get_last_name +from match_up.data import Player, DisplayPlayer, Team, Game from match_up.data import ( - Player, - DisplayPlayer, - Team, - Game, MIN_LEVEL, MAX_LEVEL, PLAYER_PER_COURT, @@ -86,27 +84,27 @@ def _create_games(courts: dict, players: list[Player], levels: int) -> list[Game games.append(Game(court, team1, team2)) return games - -def _textualize_guest(level, value) -> str: - match level: - case 1: - text = "Beginners" - case 3: - text = "Novices" - case 5: - text = "Intermediates" - if value == 1: - text = text[:-1] - return f"{value} {text}" +def _create_team_games(courts: dict, teams: dict) -> tuple[list[Game], list[Player]]: + games = [] + selected_players = [] + for court, (_, players) in zip(courts, teams.items()): + selected_players.append(players[:3]) + team1 = Team( + player1=DisplayPlayer(players[0]), player2=DisplayPlayer(players[3]) + ) + team2 = Team( + player1=DisplayPlayer(players[1]), player2=DisplayPlayer(players[2]) + ) + games.append(Game(court, team1, team2)) + return games, selected_players def _init_guests(session) -> None: for level_id, level in enumerate(GUEST_LEVELS): for player_id in range(GUESTS_PER_LEVEL): unique_id = (level_id * GUESTS_PER_LEVEL) + player_id + 1 - id = 1000 + unique_id player = Player( - id=id, + id=-unique_id, first="Guest", last=str(unique_id), level=level, @@ -135,12 +133,19 @@ def _init_database_from_csv(session, csv_location: str) -> None: def _init_random_database(session, player_count: int = 80) -> None: + total_teams = 5 + players_per_team = 5 for i in range(player_count): + if i < total_teams * players_per_team: + team = floor(i / players_per_team) + 1 + else: + team = 0 player = Player( id=i, first=get_first_name(), last=get_last_name(), level=randint(MIN_LEVEL, MAX_LEVEL), + team=team, status=bool(getrandbits(1)), count=0, ) |
