main #3

Merged
daniel156161 merged 5 commits from main into dev 2024-04-13 11:48:47 +02:00
Showing only changes of commit 22b8746972 - Show all commits
+12 -2
View File
@@ -5,6 +5,7 @@ class GameStorage:
def __init__(self, snake:str, path:str): def __init__(self, snake:str, path:str):
self.snake_type = snake self.snake_type = snake
self.folder = path self.folder = path
self.winner_snake_names = None
def start_new_game(self, game_type:dict, game_board:dict, snake:dict): def start_new_game(self, game_type:dict, game_board:dict, snake:dict):
self.game_type = game_type self.game_type = game_type
@@ -16,11 +17,13 @@ class GameStorage:
self.game_board.append(game_board) self.game_board.append(game_board)
self.moves.append(my_move) 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.game_board.append(game_board)
self.snake_history = snake_history_state 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]: if self.start_position["id"] in [ x["id"] for x in snakes]:
self.winner_snake_names = "me" self.winner_snake_names = "me"
else: else:
@@ -33,6 +36,9 @@ class GameStorage:
return "standart" return "standart"
def save(self, path:str, callback=None, **kwargs): 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), { save_file(os.path.join(self.folder, path), {
"snake": { "snake": {
"type": self.snake_type, "type": self.snake_type,
@@ -42,8 +48,12 @@ class GameStorage:
"type": self._get_type_of_gameboard(), "type": self._get_type_of_gameboard(),
"infos": self.game_type, "infos": self.game_type,
"snake_start": self.start_position, "snake_start": self.start_position,
"final_turns": self.final_turns,
"gameboard": self.game_board, "gameboard": self.game_board,
"my_moves": self.moves, "my_moves": self.moves,
}, },
"winner": self.winner_snake_names, "winner": self.winner_snake_names,
}, callback=callback, **kwargs) }, 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}"