diff --git a/SourceCollector.py b/SourceCollector.py index d795172..1fb2de9 100644 --- a/SourceCollector.py +++ b/SourceCollector.py @@ -145,6 +145,7 @@ class SourceCollector: # 距离=曼哈顿距离 dist = abs(child.pos[0] - sn.pos[0]) + abs(child.pos[1] - sn.pos[1]) # 金币优先,陷阱次之 + print(dist) if self.maze[child.pos[0]][child.pos[1]].startswith('g'): return (0, dist) # 金币优先,距离近优先 elif self.maze[child.pos[0]][child.pos[1]].startswith('t'): @@ -169,6 +170,7 @@ class SourceCollector: return self.path def bfs_path(self, start, end): + return """从start到end的最短路径(含首尾)""" from collections import deque n, m = self.rowNums, self.colNums diff --git a/maze_generator.py b/maze_generator.py index 7d18be3..b4d4ebd 100644 --- a/maze_generator.py +++ b/maze_generator.py @@ -86,6 +86,8 @@ class MazeGenerator: recursiveDivision(x, wall_y + 1, wall_x - x, y + height - wall_y - 1) recursiveDivision(wall_x + 1, y, x + width - wall_x - 1, wall_y - y) recursiveDivision(wall_x + 1, wall_y + 1, x + width - wall_x - 1, y + height - wall_y - 1) + self.history_mazes.append([[__ for __ in _] for _ in self.maze]) + # 先全部通路 self.maze = [[self.ROUTE for _ in range(self.size)] for _ in range(self.size)] # 四周加墙 @@ -109,7 +111,9 @@ class MazeGenerator: self.maze[start[0]][start[1]] = self.START self.maze[end[0]][end[1]] = self.END self.special_elements.extend([(start[0], start[1], self.START), (end[0], end[1], self.END)]) - + def get_history_mazes(self): + return self.history_mazes + def get_available_cells(self): """获取所有可通行单元格""" cells = [] diff --git a/saves/maze_save_20250630_124021.json b/saves/maze_save_20250630_124021.json new file mode 100644 index 0000000..960ad0b --- /dev/null +++ b/saves/maze_save_20250630_124021.json @@ -0,0 +1,580 @@ +{ + "maze": [ + [ + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#" + ], + [ + "#", + " ", + "#", + " ", + " ", + " ", + "#", + " ", + "#", + " ", + " ", + " ", + "#", + " ", + "#", + "#" + ], + [ + "#", + " ", + " ", + " ", + "#", + "#", + "#", + "T", + "#", + "#", + "#", + "G", + " ", + " ", + "#", + "#" + ], + [ + "#", + " ", + "#", + " ", + "G", + " ", + "L", + " ", + "#", + " ", + " ", + " ", + "#", + "G", + " ", + "#" + ], + [ + "#", + " ", + "#", + "#", + " ", + "#", + "#", + "#", + "#", + "#", + " ", + "#", + "#", + "#", + "#", + "#" + ], + [ + "#", + "S", + "#", + " ", + " ", + " ", + "#", + " ", + "#", + " ", + " ", + " ", + " ", + " ", + "#", + "#" + ], + [ + "#", + "T", + "#", + "G", + "#", + " ", + " ", + "B", + "#", + " ", + "#", + "G", + "#", + "T", + "#", + "#" + ], + [ + "#", + " ", + "#", + "G", + "#", + " ", + "#", + " ", + " ", + " ", + "#", + " ", + "#", + " ", + " ", + "#" + ], + [ + "#", + " ", + "#", + "#", + "#", + " ", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + " ", + "#" + ], + [ + "#", + " ", + "#", + " ", + " ", + " ", + " ", + "E", + "#", + " ", + " ", + " ", + " ", + " ", + " ", + "#" + ], + [ + "#", + " ", + "#", + " ", + "#", + " ", + "#", + "#", + "#", + " ", + "#", + "#", + "#", + "#", + "#", + "#" + ], + [ + "#", + " ", + "#", + " ", + "#", + " ", + "G", + " ", + "#", + " ", + " ", + " ", + " ", + " ", + " ", + "#" + ], + [ + "#", + " ", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + " ", + "#", + "#", + "#", + "#" + ], + [ + "#", + " ", + "#", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "#", + "#" + ], + [ + "#", + " ", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "L", + " ", + "#" + ], + [ + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#", + "#" + ] + ], + "metadata": { + "save_name": "maze_save_20250630_124021", + "save_time": "2025-06-30T12:40:21.179729", + "maze_size": 16, + "path_length": 69 + }, + "path_data": { + "full_path": [ + [ + 5, + 1 + ], + [ + 4, + 1 + ], + [ + 3, + 1 + ], + [ + 2, + 1 + ], + [ + 2, + 2 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 4 + ], + [ + 5, + 4 + ], + [ + 5, + 3 + ], + [ + 6, + 3 + ], + [ + 7, + 3 + ], + [ + 6, + 3 + ], + [ + 5, + 3 + ], + [ + 5, + 4 + ], + [ + 5, + 5 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 10, + 5 + ], + [ + 11, + 5 + ], + [ + 11, + 6 + ], + [ + 11, + 5 + ], + [ + 10, + 5 + ], + [ + 9, + 5 + ], + [ + 8, + 5 + ], + [ + 7, + 5 + ], + [ + 6, + 5 + ], + [ + 6, + 6 + ], + [ + 6, + 7 + ], + [ + 7, + 7 + ], + [ + 7, + 8 + ], + [ + 7, + 9 + ], + [ + 6, + 9 + ], + [ + 5, + 9 + ], + [ + 5, + 10 + ], + [ + 4, + 10 + ], + [ + 3, + 10 + ], + [ + 3, + 11 + ], + [ + 2, + 11 + ], + [ + 2, + 12 + ], + [ + 2, + 13 + ], + [ + 3, + 13 + ], + [ + 2, + 13 + ], + [ + 2, + 12 + ], + [ + 2, + 11 + ], + [ + 3, + 11 + ], + [ + 3, + 10 + ], + [ + 4, + 10 + ], + [ + 5, + 10 + ], + [ + 5, + 11 + ], + [ + 6, + 11 + ], + [ + 5, + 11 + ], + [ + 5, + 10 + ], + [ + 5, + 9 + ], + [ + 6, + 9 + ], + [ + 7, + 9 + ], + [ + 7, + 8 + ], + [ + 7, + 7 + ], + [ + 6, + 7 + ], + [ + 6, + 6 + ], + [ + 6, + 5 + ], + [ + 7, + 5 + ], + [ + 8, + 5 + ], + [ + 9, + 5 + ], + [ + 9, + 6 + ], + [ + 9, + 7 + ] + ], + "current_step": 0, + "is_path_complete": false + } +} \ No newline at end of file