36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from ..models import GameModel
|
|
|
|
from .pong.PongGame import PongGame
|
|
from .tictactoe.TicTacToeGame import TicTacToeGame
|
|
|
|
from tournament.models import TournamentGameModel
|
|
|
|
class GameManager():
|
|
|
|
def __init__(self) -> None:
|
|
self._game_list: list[PongGame | TicTacToeGame] = []
|
|
|
|
def remove(self, game: PongGame | TicTacToeGame) -> None:
|
|
if (game not in self._game_list):
|
|
return
|
|
self._game_list.remove(game)
|
|
|
|
def get(self, game_id: int, game_type: str) -> TicTacToeGame | PongGame:
|
|
|
|
if (not GameModel.objects.filter(pk=game_id, finished=False, game_type=game_type).exists()):
|
|
return None
|
|
|
|
for game in self._game_list:
|
|
game: PongGame | TicTacToeGame
|
|
if (game.game_id == game_id):
|
|
return game
|
|
|
|
game: PongGame | TicTacToeGame
|
|
if (game_type == "pong"):
|
|
game = PongGame(game_id, self)
|
|
elif (game_type == "tictactoe"):
|
|
game = TicTacToeGame(game_id, self)
|
|
|
|
self._game_list.append(game)
|
|
|
|
return game |