Files
snake-python/server/GameStorage.py
T
daniel156161 7acc269df4 main (#1)
Reviewed-on: #1
Co-authored-by: Daniel Dolezal <d.dolezal97@protonmail.com>
Co-committed-by: Daniel Dolezal <d.dolezal97@protonmail.com>
2024-04-13 03:03:09 +02:00

43 lines
1.3 KiB
Python

from server.Files import save_file
import os
class GameStorage:
def __init__(self, snake:str, path:str):
self.snake_type = snake
self.folder = path
def start_new_game(self, game_type:dict, game_board:dict, snake:dict):
self.game_type = game_type
self.start_position = snake
self.game_board = [game_board]
self.moves = []
def add_moves(self, game_board:dict, my_move:str):
self.game_board.append(game_board)
self.moves.append(my_move)
def add_end_state(self, game_board:dict, snake_history_state:list[dict]):
self.game_board.append(game_board)
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):
save_file(os.path.join(self.folder, path), {
"snake": {
"type": self.snake_type,
"choices": self.snake_history,
},
"game": {
"type": self.game_type,
"snake_start": self.start_position,
"gameboard": self.game_board,
"my_moves": self.moves,
},
"winner": self.winner_snake_names,
}, callback=callback, **kwargs)