aboutsummaryrefslogtreecommitdiff
path: root/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'model.py')
-rw-r--r--model.py30
1 files changed, 23 insertions, 7 deletions
diff --git a/model.py b/model.py
index ba5cb9b..f768d0f 100644
--- a/model.py
+++ b/model.py
@@ -1,7 +1,6 @@
from math import floor
from csv import reader
from typing import Tuple
-from pathlib import Path
from dataclasses import dataclass
MIN_LEVEL = 1
@@ -12,7 +11,7 @@ PLAYER_PER_COURT = 4
@dataclass
class Player:
name: str
- skill: int = 0
+ skill: int = 1
status: bool = False
@@ -56,6 +55,7 @@ class CourtList:
@dataclass
class PlayerList:
location: str
+ guests: int = 0
def __post_init__(self) -> None:
with open("data/" + self.location, newline="") as file:
@@ -64,8 +64,19 @@ class PlayerList:
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
@@ -78,10 +89,15 @@ class PlayerList:
return self.players
def get_possible_game_count(self) -> int:
- active_player_count = len(self.get_active_players())
- possible_games = floor(active_player_count / PLAYER_PER_COURT)
+ total_players = len(self.get_potential_players())
+ possible_games = floor(total_players / PLAYER_PER_COURT)
return possible_games
- def get_active_players(self) -> Tuple[dict, dict]:
- active_players = {k: v for k, v in self.players.items() if v.status}
- return active_players
+ 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