From 9e0a91923383489f6f1d8665dcd9399520e6e40d Mon Sep 17 00:00:00 2001 From: Daniel Dolezal Date: Mon, 15 Apr 2024 23:44:47 +0200 Subject: [PATCH] fix not used code for flood_fill_count --- snakes/BetterMasterSnake.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/snakes/BetterMasterSnake.py b/snakes/BetterMasterSnake.py index 299366b..918ace0 100644 --- a/snakes/BetterMasterSnake.py +++ b/snakes/BetterMasterSnake.py @@ -218,7 +218,7 @@ class BetterMasterSnake(TemplateSnake): future_position = self.safe_positions[move] except KeyError: for move, pos in self.safe_positions.items(): - if self.is_near_tail((pos["x"], pos["y"]), (self.my_body[-1]['x'], self.my_body[-1]['y'])): + if self.is_near_tail(pos, (self.my_body[-1]['x'], self.my_body[-1]['y'])): self.add_calculations({"function": "ensure_escape_route", "move": move, "is_near_tail": True}) move = self.move_towards(pos) return move @@ -237,18 +237,23 @@ class BetterMasterSnake(TemplateSnake): accessible_area_count = self.flood_fill_count(future_coords, [(part['x'], part['y']) for part in self.my_body]) self.add_calculations({ - "function": "ensure_escape_route", + "function": "flood_fill_count", "move": move, "future_coords": future_coords, + "tail_position": tail_position, "accessible_area_count": accessible_area_count, }) # TODO: Fix - Snake Neat to find the best way - Close to the Tail and maybe fill most free cells as posible #if accessible_area_count < self.min_safe_area: # # Finde den nächstgelegenen Zug zum Schwanz + # print(self.safe_positions.keys()) # closest_move = min(self.safe_positions.keys(), key=lambda m: self.distance_to_tail(self.safe_positions[m], tail_position)) + # accessible_area_count = self.flood_fill_count((self.safe_positions[closest_move]["x"], self.safe_positions[closest_move]["y"]), [(part['x'], part['y']) for part in self.my_body]) + + # print(closest_move, accessible_area_count, accessible_area_count >= self.min_safe_area) # # Überprüfe, ob der nächstgelegene Zug eine größere zugängliche Fläche hat - # if self.flood_fill_count(self.safe_positions[closest_move], [(part['x'], part['y']) for part in self.my_body]) >= self.min_safe_area: + # if accessible_area_count >= self.min_safe_area: # return closest_move return move @@ -263,7 +268,7 @@ class BetterMasterSnake(TemplateSnake): if current not in visited: visited.add(current) for direction, pos in self.safe_positions.items(): - neighbor = (current[0] + pos[0], current[1] + pos[1]) + neighbor = (pos["x"], pos["y"]) if (neighbor not in visited and neighbor not in body_set and 0 <= neighbor[0] < self.board_width and 0 <= neighbor[1] < self.board_height): @@ -272,10 +277,10 @@ class BetterMasterSnake(TemplateSnake): return len(visited) def is_near_tail(self, position, tail): - return abs(position[0] - tail[0]) + abs(position[1] - tail[1]) <= 2 + return abs(position["x"] - tail[0]) + abs(position["y"] - tail[1]) <= 2 def distance_to_tail(self, position, tail): - return abs(position[0] - tail[0]) + abs(position[1] - tail[1]) + return abs(position["x"] - tail[0]) + abs(position["y"] - tail[1]) def a_star_search(self, start, goal, obstacles, board_width, board_height): # Helper functions