Python迷宫BFS最短路径

我正在学习搜索算法,并试图实现BFS算法,以检查在给定起始位置的迷宫中是否可以达到目标。迷宫是从txt文件作为2D数组导入的。我的解决方案似乎找到了目标,但是我无法仅显示所走的路径,而只能显示所有访问过的节点。我想在算法运行后显示迷宫,并用标记表示所采取的路径。当前显示用“。”访问的索引。符号。 “与”号代表无法通过的墙。这是我的代码:

def BFS(maze,start,goal):

queue = deque([start])

visited = set(([start]))

while(queue):

    x,y = queue.popleft()

    if ((x,y) == goal):
        return x

    if (start != (x,y)):
        maze[x][y] = '.'

    visited.add((x,y))

    if (maze[x][y+1] != "&" and (x,y+1) not in visited):
        queue.append((x,y+1))

    if (maze[x][y-1] != "&" and (x,y-1) not in visited):
        queue.append((x,y-1))

    if (maze[x-1][y] != "&" and (x-1,y) not in visited):
        queue.append((x-1,y)) 

    if (maze[x+1][y] != "&" and (x+1,y) not in visited):
        queue.append((x+1,y)) 

谢谢

lishuoeva 回答:Python迷宫BFS最短路径

我能够弄清楚。我必须使用一个字典,将每个被调用的节点与调用它的节点一起存储。之后,一旦我达到目标,就循环浏览每个字典键值对,并以目标作为找到路径的关键。

本文链接:https://www.f2er.com/3168686.html

大家都在问