store what snake win the game
This commit is contained in:
@@ -20,6 +20,12 @@ class GameStorage:
|
|||||||
self.game_board.append(game_board)
|
self.game_board.append(game_board)
|
||||||
self.snake_history = snake_history_state
|
self.snake_history = snake_history_state
|
||||||
|
|
||||||
|
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:
|
||||||
|
self.winner_snake_names = [ x["name"] for x in snakes]
|
||||||
|
|
||||||
def save(self, path:str, callback=None, **kwargs):
|
def save(self, path:str, callback=None, **kwargs):
|
||||||
save_file(os.path.join(self.folder, path), {
|
save_file(os.path.join(self.folder, path), {
|
||||||
"snake": {
|
"snake": {
|
||||||
@@ -31,5 +37,6 @@ class GameStorage:
|
|||||||
"snake_start": self.start_position,
|
"snake_start": self.start_position,
|
||||||
"gameboard": self.game_board,
|
"gameboard": self.game_board,
|
||||||
"my_moves": self.moves,
|
"my_moves": self.moves,
|
||||||
}
|
},
|
||||||
|
"winner": self.winner_snake_names,
|
||||||
}, callback=callback, **kwargs)
|
}, callback=callback, **kwargs)
|
||||||
|
|||||||
+2
-1
@@ -94,9 +94,10 @@ class Server:
|
|||||||
def _end(self, game_state:dict):
|
def _end(self, game_state:dict):
|
||||||
if self.store_game_state:
|
if self.store_game_state:
|
||||||
self.game_state_storage.add_end_state(game_state["board"], self.snake.get_history())
|
self.game_state_storage.add_end_state(game_state["board"], self.snake.get_history())
|
||||||
|
self.game_state_storage.set_winner_snake_name(game_state["board"]['snakes'])
|
||||||
self.game_state_storage.save(
|
self.game_state_storage.save(
|
||||||
f"{self.snake.__class__.__name__}_{datetime.now().strftime('%d.%m.%Y_%H%M%S')}_{game_state['game']['id']}.json",
|
f"{self.snake.__class__.__name__}_{datetime.now().strftime('%d.%m.%Y_%H%M%S')}_{game_state['game']['id']}.json",
|
||||||
callback=json.dump, indent=2, ensure_ascii=False
|
callback=json.dump, indent=2, ensure_ascii=False
|
||||||
)
|
)
|
||||||
|
|
||||||
print("GAME OVER\n")
|
print("GAME OVER:\n- Winner is", [ x["name"] for x in game_state["board"]['snakes']])
|
||||||
|
|||||||
Reference in New Issue
Block a user