我有一个关于我正在制作的迷宫探路者的问题。我有一个深度优先的解决方案,但我想要一个广度优先的解决方案。这是深度第一:
def find_path(pathList):
if pathList[-1] == goal:
return pathList
for i in adjacent_passages(labyrinth, pathList[-1]):
if i not in pathList:
found_path = find_path(pathList + [i])
if found_path:
return found_path
这就是我在广度优先问题上的“远”:
def find_path_bf(pathL):
num = 0
for i in range(0, len(pathL)):
frontier[i] = adjacent_passages(labyrinth, pathL[i][-1])
for i in range(0, len(pathL)):
if pathL[i][-1] == goal:
return pathL[i]
for i in frontier:
if i not in pathL:
pathL[num].append(i)
num = num + 1
find_path_bf(pathL)
迷宫是迷宫的矩阵,相邻通道找到相邻的正方形:)