添加生成地图时的history_mazes

This commit is contained in:
Guanforever 2025-06-30 12:51:39 +08:00
parent 93f67b63fd
commit 2d9e17fa59
3 changed files with 587 additions and 1 deletions

View File

@ -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

View File

@ -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 = []

View 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
}
}