main #3
+12
-2
@@ -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}"
|
||||||
|
|||||||
Reference in New Issue
Block a user