From c26824aeaf823f8a3f6dd4b99c376ca854272c5e Mon Sep 17 00:00:00 2001 From: Daniel Dolezal Date: Thu, 18 Apr 2024 22:20:07 +0200 Subject: [PATCH] create a game board class --- server/GameBoard.py | 74 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 server/GameBoard.py diff --git a/server/GameBoard.py b/server/GameBoard.py new file mode 100644 index 0000000..9952ede --- /dev/null +++ b/server/GameBoard.py @@ -0,0 +1,74 @@ + +class GameBoard: + def __init__(self, game_id:str, width:int, height:int, type:str, snake_class): + self.id = game_id + self.width = width + self.height = height + self.type = type + self.snake_class = snake_class + + # What will get Stored + + + def _set_snakes(self, snakes:list[dict]): + self.other_snakes = [ x for x in snakes if x["id"] != self.my_snake["id"] ] + + def _set_my_snake(self, my_snake:str): + self.my_snake = my_snake + + def _set_food(self, food:list[dict]): + self.food = food + + def _set_hazards(self, hazards:list[dict]): + self.hazards = hazards + + def _set_turn(self, turn:int): + self.turn = turn + + def get_other_snakes(self): + return self.other_snakes + + def get_my_snake(self): + return self.my_snake + + def get_food(self): + return self.food + + def get_hazard(self): + return self.hazards + + def get_turn(self): + return self.turn + + def get_dimension(self): + return {"width": self.width, "height": self.height} + + def get_width(self): + return self.width + + def get_height(self): + return self.height + + def get_type(self): + return self.type + + def get_my_snake_head(self): + return self.my_snake["head"] + + def get_my_snake_body(self): + return self.my_snake["body"] + + def get_my_snake_tail(self): + return self.my_snake["body"][-1] + + def read_game_data(self, game_data:dict): + self._set_food(game_data['board']['food']) + self._set_hazards(game_data['board']['hazards']) + + self._set_my_snake(game_data['you']) + self._set_snakes(game_data['board']['snakes']) + + self._set_turn(game_data["turn"]) + + def snake_neat_make_a_move(self): + return self.snake_class.choose_move(self)