我孜孜不倦地试图用python制作一个迷宫解算器。我已经使用了我所有的资源,比如朋友、互联网和堆栈。我已经根据之前的堆栈问题修改了很多代码,但是即使完全复制代码(我不喜欢这样做),也无法得到答案。在
迷宫/输入文件(嵌套列表):[['*', '*', '*', '*', '*'],
['*', ' ', '*', ' ', '*'],
['*', ' ', ' ', ' ', '*'],
['*', ' ', '*', ' ', 'E'],
['*', 'S', '*', '*', '*']]
此函数在迷宫中的相同点上循环。我的起点“S”是(4,1),其输出为:
^{pr2}$
上面的语句是用来打印调试函数I的。它只是按这个顺序打印上面的内容,直到它到达递归限制。低于是我的求解函数:already_visited=[]
def solve(x,y):
global already_visited
matrix = draw(load())
print (x,y)
#base cases
if matrix[x][y] == "E":
for row in matrix:
row = str(row)[1:-1]
print row
return True
if matrix[x][y] == "*":
return False
if matrix[x][y] == "x":
return False
matrix[x][y] = "x"
#---------------------
if (x,y) in already_visited: #check if we have already been here
return False
already_visited.append((x,y)) #add position to list
#---------------------
# recursive cases (matrix traversal)
if (x < len(matrix)-1 and solve1(x+1,y)):
return True
elif (y > 0 and solve1(x,y-1)):
return True
elif (x > 0 and solve1(x-1,y)):
return True
elif (y < len(matrix)-1 and solve1(x,y+1)):
return True
else:
return False
我输入的x和y的函数都是起始索引,如上面的迷宫所示。非常感谢任何帮助!在