aboutsummaryrefslogtreecommitdiff
path: root/model.py
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2024-10-11 19:23:01 +0200
committerKaran Jayachandra <karan.jayachandra@nxp.com>2024-10-11 19:23:01 +0200
commitf80463a6437533deef1d85ffa31cf0cc5ed8e454 (patch)
tree492b1497cf648e08e84a35dea2d217a57643dab0 /model.py
parent20d668454a1e1d8f17f7e5d4d25f667f62381cd1 (diff)
Added skilled and random games
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 9af7198..a623d0a 100644
--- a/model.py
+++ b/model.py
@@ -122,16 +122,15 @@ PLAYER_PER_COURT = 4
def create_single_game(court: Court, players: list[Player]):
- team1 = Team(player1=players[0], player2=players[1])
- team2 = Team(player1=players[2], player2=players[3])
+ team1 = Team(player1=players[0], player2=players[3])
+ team2 = Team(player1=players[1], player2=players[2])
return Game(court, team1, team2)
def create_possible_games(court_list: list[Court], players: list[Player]):
- current_players = sample(players, len(court_list) * PLAYER_PER_COURT)
clumped_players = [
- current_players[i : i + PLAYER_PER_COURT]
- for i in range(0, len(current_players), PLAYER_PER_COURT)
+ players[i : i + PLAYER_PER_COURT]
+ for i in range(0, len(players), PLAYER_PER_COURT)
]
games = [
create_single_game(court, clump)
@@ -153,13 +152,30 @@ class GameList:
games.sort(key=attrgetter("court.number"))
self.games = games
- def create_games(self, court_list: CourtList, player_list: PlayerList):
+ def create_random_games(self, court_list: CourtList, player_list: PlayerList):
active_players = player_list.get_active_players()
active_courts = [court for court in court_list.courts if court.status]
inactive_courts = [court for court in court_list.courts if not court.status]
possible_games = floor(len(active_players) / PLAYER_PER_COURT)
+ current_players = sample(active_players, possible_games * PLAYER_PER_COURT)
active_games = create_possible_games(
- active_courts[:possible_games], active_players
+ active_courts[:possible_games], current_players
+ )
+ dummy_games = create_dummy_games(active_courts[possible_games:])
+ reserved_games = create_reserved_games(inactive_courts)
+ games = active_games + dummy_games + reserved_games
+ games.sort(key=attrgetter("court.number"))
+ self.games = games
+
+ def create_skilled_games(self, court_list: CourtList, player_list: PlayerList):
+ active_players = player_list.get_active_players()
+ active_courts = [court for court in court_list.courts if court.status]
+ inactive_courts = [court for court in court_list.courts if not court.status]
+ possible_games = floor(len(active_players) / PLAYER_PER_COURT)
+ current_players = sample(active_players, possible_games * PLAYER_PER_COURT)
+ current_players.sort(key=attrgetter("skill"))
+ active_games = create_possible_games(
+ active_courts[:possible_games], current_players
)
dummy_games = create_dummy_games(active_courts[possible_games:])
reserved_games = create_reserved_games(inactive_courts)