【发布时间】:2014-09-15 23:52:47
【问题描述】:
我编写了一个递归解决迷宫的程序。它打开一个包含迷宫的文本文件,将其转换为列表列表,然后尝试递归解决它。 这是解决迷宫的部分:
def search(x,y, mazeList):
# returns True if it has found end of maze
if mazeList[x][y] == 'E':
return True
# returns False if it encounters a wall
elif mazeList[x][y] == '-':
return False
elif mazeList[x][y] == '+':
return False
elif mazeList[x][y] == "|":
return False
# returns False if it finds a visited path
elif mazeList[x][y] == '*':
return False
# marks path with '*'
mazeList[x][y] = '*'
# recursive search
if ((search(x+1, y, mazeList))
or (search(x, y-1, mazeList))
or (search(x-1, y, mazeList))
or (search(x, y+1, mazeList))):
return True
return False
在迷宫中,“-”、“+”和“|”组成迷宫的墙壁,可以导航空白空间,“E”是迷宫的尽头。它从迷宫的左下方开始,然后从那里开始。我希望用*标记正确的路径,但是它用*标记它所走的每条路径,即使它是它回溯的错误路径。
那么我该如何编辑我的代码,以便最后只有从开始到结束的正确路径用 * 标记
【问题讨论】:
-
请先修正缩进!
-
@BasSwinckels 很抱歉,现在一切都解决了。