添加生成地图时的history_mazes
This commit is contained in:
parent
93f67b63fd
commit
2d9e17fa59
@ -145,6 +145,7 @@ class SourceCollector:
|
|||||||
# 距离=曼哈顿距离
|
# 距离=曼哈顿距离
|
||||||
dist = abs(child.pos[0] - sn.pos[0]) + abs(child.pos[1] - sn.pos[1])
|
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'):
|
if self.maze[child.pos[0]][child.pos[1]].startswith('g'):
|
||||||
return (0, dist) # 金币优先,距离近优先
|
return (0, dist) # 金币优先,距离近优先
|
||||||
elif self.maze[child.pos[0]][child.pos[1]].startswith('t'):
|
elif self.maze[child.pos[0]][child.pos[1]].startswith('t'):
|
||||||
@ -169,6 +170,7 @@ class SourceCollector:
|
|||||||
return self.path
|
return self.path
|
||||||
|
|
||||||
def bfs_path(self, start, end):
|
def bfs_path(self, start, end):
|
||||||
|
return
|
||||||
"""从start到end的最短路径(含首尾)"""
|
"""从start到end的最短路径(含首尾)"""
|
||||||
from collections import deque
|
from collections import deque
|
||||||
n, m = self.rowNums, self.colNums
|
n, m = self.rowNums, self.colNums
|
||||||
|
@ -86,6 +86,8 @@ class MazeGenerator:
|
|||||||
recursiveDivision(x, wall_y + 1, wall_x - x, y + height - wall_y - 1)
|
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, 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)
|
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)]
|
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[start[0]][start[1]] = self.START
|
||||||
self.maze[end[0]][end[1]] = self.END
|
self.maze[end[0]][end[1]] = self.END
|
||||||
self.special_elements.extend([(start[0], start[1], self.START), (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):
|
def get_available_cells(self):
|
||||||
"""获取所有可通行单元格"""
|
"""获取所有可通行单元格"""
|
||||||
cells = []
|
cells = []
|
||||||
|
580
saves/maze_save_20250630_124021.json
Normal file
580
saves/maze_save_20250630_124021.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user