diff --git a/server/GameStorage.py b/server/GameStorage.py index b92c034..e312730 100644 --- a/server/GameStorage.py +++ b/server/GameStorage.py @@ -5,6 +5,7 @@ class GameStorage: def __init__(self, snake:str, path:str): self.snake_type = snake self.folder = path + self.winner_snake_names = None def start_new_game(self, game_type:dict, game_board:dict, snake:dict): self.game_type = game_type @@ -16,11 +17,13 @@ class GameStorage: self.game_board.append(game_board) self.moves.append(my_move) - def add_end_state(self, game_board:dict, snake_history_state:list[dict]): + def add_end_state(self, game_board:dict, snake_history_state:list[dict], final_turns:int): self.game_board.append(game_board) self.snake_history = snake_history_state + self._set_winner_snake_name(game_board['snakes']) + self.final_turns = final_turns - def set_winner_snake_name(self, snakes:list[dict]): + def _set_winner_snake_name(self, snakes:list[dict]): if self.start_position["id"] in [ x["id"] for x in snakes]: self.winner_snake_names = "me" else: @@ -33,6 +36,9 @@ class GameStorage: return "standart" def save(self, path:str, callback=None, **kwargs): + if self.winner_snake_names == "me" and self.final_turns <= 10: + return None + save_file(os.path.join(self.folder, path), { "snake": { "type": self.snake_type, @@ -42,8 +48,12 @@ class GameStorage: "type": self._get_type_of_gameboard(), "infos": self.game_type, "snake_start": self.start_position, + "final_turns": self.final_turns, "gameboard": self.game_board, "my_moves": self.moves, }, "winner": self.winner_snake_names, }, callback=callback, **kwargs) + + def __str__(self): + return f"<{self.__class__.__name__}> Snake: {self.snake_type}, Folder: {self.folder}, Winner: {self.winner_snake_names}, Old Moves: {self.moves}"