diff options
| author | Karan Jayachandra <mail@karanjayachandra.com> | 2024-11-15 17:26:47 +0000 |
|---|---|---|
| committer | Karan Jayachandra <mail@karanjayachandra.com> | 2024-11-15 17:26:47 +0000 |
| commit | 7b7f8cdef5f035ccdab714059c1a6c54b80c4ba3 (patch) | |
| tree | 2d7ea5de37f2bda57be419b4aa37971afa09eab5 /model.py | |
| parent | f68c54ae8f921c23851680b2501fac8bda1b4010 (diff) | |
| parent | 7b8bbe6db3680af65c3701afbcd31ac1f61773af (diff) | |
Merge branch 'develop' into 'main'2.0
Database and javascript timer implemented
See merge request KaranJayachandra/match_up!11
Diffstat (limited to 'model.py')
| -rw-r--r-- | model.py | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/model.py b/model.py deleted file mode 100644 index f768d0f..0000000 --- a/model.py +++ /dev/null @@ -1,103 +0,0 @@ -from math import floor -from csv import reader -from typing import Tuple -from dataclasses import dataclass - -MIN_LEVEL = 1 -MAX_LEVEL = 10 -PLAYER_PER_COURT = 4 - - -@dataclass -class Player: - name: str - skill: int = 1 - status: bool = False - - -@dataclass -class Team: - player1: str - player2: str - - -@dataclass -class Game: - court: int - team1: Team - team2: Team - - -@dataclass -class CourtList: - total: int - - def __post_init__(self) -> None: - self.courts = {i + 1: True for i in range(self.total)} - - def get_court_status(self, court_number: int) -> bool: - return self.courts[court_number] - - def toggle_court_status(self, court_number: int) -> None: - new_status = not self.courts[court_number] - self.courts[court_number] = new_status - return new_status - - def get_courts(self) -> dict: - return self.courts - - def separate_courts(self) -> Tuple[dict, dict]: - active_courts = {k: v for k, v in self.courts.items() if v} - inactive_courts = {k: v for k, v in self.courts.items() if not v} - return active_courts, inactive_courts - - -@dataclass -class PlayerList: - location: str - guests: int = 0 - - def __post_init__(self) -> None: - with open("data/" + self.location, newline="") as file: - pointer = reader(file) - next(pointer, None) - players = { - id: Player(row[0], int(row[1])) for id, row in enumerate(pointer) - } - self.guest_id_start = len(players) + 1 - self.players = players - - def increment_guests(self): - self.guests = self.guests + 1 - return self.guests - - def decrement_guests(self): - if self.guests == 0: - return 0 - self.guests = self.guests - 1 - return self.guests - - def get_player_status(self, player_number: int) -> bool: - return self.players[player_number].status - - def toggle_player_status(self, player_number: int) -> Tuple[bool, str]: - new_status = not self.players[player_number].status - self.players[player_number].status = new_status - return new_status, self.players[player_number].name - - def get_players(self) -> dict: - return self.players - - def get_possible_game_count(self) -> int: - total_players = len(self.get_potential_players()) - possible_games = floor(total_players / PLAYER_PER_COURT) - return possible_games - - def get_potential_players(self) -> dict: - players = {k: v for k, v in self.players.items() if v.status} - guests = { - self.guest_id_start + k: Player(name=f"Guest {k}") - for k in range(1, self.guests + 1) - } - players.update(guests) - return players |
