添加生成地图时的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])
|
||||
# 金币优先,陷阱次之
|
||||
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
|
||||
|
@ -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 = []
|
||||
|
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