Python迷宫递归算法
所以我已经盯着这个看了一段时间了,我不知道如何才能返回这个迷宫的正确路径 2代表墙Python迷宫递归算法,python,maze,Python,Maze,所以我已经盯着这个看了一段时间了,我不知道如何才能返回这个迷宫的正确路径 2代表墙 MAZE = [[2,2,2,2,1,2], [2,2,1,2,1,2], [2,2,1,2,1,2], [2,1,1,1,1,2], [2,1,2,2,2,2], [2,1,2,2,2,2]] START_ROW = 5 START_COL = 1 END_ROW = 0 END_COL = 4 was_here = [[Fa
MAZE = [[2,2,2,2,1,2],
[2,2,1,2,1,2],
[2,2,1,2,1,2],
[2,1,1,1,1,2],
[2,1,2,2,2,2],
[2,1,2,2,2,2]]
START_ROW = 5
START_COL = 1
END_ROW = 0
END_COL = 4
was_here = [[False]*6 for i in range(6)]
correct_path = [[False]*6 for i in range(6)]
def recursiveSolve(x, y, correct_path):
if x == END_ROW and y == END_COL:
print correct_path
return True
if MAZE[x][y] == 2 or was_here[x][y]:
return False
was_here[x][y] = True
if x != 0:
if recursiveSolve(x-1, y, correct_path):
correct_path[x][y] = True
return True
if x != 5:
if recursiveSolve(x+1, y, correct_path):
correct_path[x][y] = True
return True
if y != 0:
if recursiveSolve(x, y-1, correct_path):
correct_path[x][y] = True
return True
if y != 5:
if recursiveSolve(x, y+1, correct_path):
correct_path[x][y] = True
return True
return False
print recursiveSolve(START_ROW, START_COL, correct_path)
我的代码运行得很好。它告诉你迷宫是否可解,但我无法打印出显示已解迷宫的数组。如果迷宫是可解的,我想打印一个数组,如下所示:
[False, False, False, False, True, False],
[False, False, False, False, True, False],
[False, False, False, False, True False],
[False, True, True, True, True, False],
[False, True, False, False, False, False],
[False, True, False, False, False, False]
但是我的代码打印出的结果都是False。是的,因为只有在每次调用recursiveSolve返回后,正确的路径才会被修改。只需将打印移到最后一行之后,瞧!哇!我觉得自己很愚蠢。我盯着这个看了一个多小时。谢谢