summaryrefslogtreecommitdiff
path: root/src/match_up/utilities.py
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2024-12-02 19:33:48 +0100
committerKaran Jayachandra <mail@karanjayachandra.com>2024-12-02 19:33:48 +0100
commitbeea33bc183837a3feceaf1b5127c2e21e16fc36 (patch)
treeed0d9b5f4e3ad600f8d498227323576800983608 /src/match_up/utilities.py
parent6ebbee2016b0232573ad1d322b4d4ca6287b3599 (diff)
Added team based games
Diffstat (limited to 'src/match_up/utilities.py')
-rw-r--r--src/match_up/utilities.py43
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,
)