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)