我有一个Python作业,我应该让一个“机器人”从开始到结束,并返回到达目标的路径。我让机器人进行搜索,但我希望列表只显示从开始到结束的路径。现在,pathList 返回所有访问过的方 block 。而且,当到达目标时,它不会停止,只是继续其他节点。 我错过了什么?
def find(labyrinth, robotPos, pathList = []):
frontier = adjacent_passages(labyrinth, robotPos)
pathList.append(robotPos)
if len(frontier) == 1:
print("Corner")
return []
for i in range(0, len(frontier)):
if frontier[i] == goal:
pathList.append(frontier[i])
return pathList
for i in range(0, len(frontier)):
if frontier[i] not in pathList:
pathList.append(frontier[i])
if (find(labyrinth, frontier[i], pathList) == []):
pathList.pop()
return pathList
最佳答案
我不知道这是否是您问题的答案,但我注意到的第一件事是您不应该使用列表作为默认函数参数 (pathList = []
) .
关于Python - 深度优先迷宫求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537301/