如果有一个二维数组代表迷宫,0为路,2为墙。如下所示:请找出从入口(1,0)到出口(6,5)的路径
maze =[[2,2,2,2,2,2,2],
[0,0,0,0,0,0,2],
[2,0,2,0,2,0,2],
[2,0,0,2,0,2,2],
[2,2,0,2,0,2,2],
[2,0,0,0,0,0,2],
[2,2,2,2,2,0,2]]
解题思路:找路径时先下后右,走不通时返回上一位置,并把路堵死。用列表收录路径坐标,最后输出。
代码展示
maze =[[2,2,2,2,2,2,2],
[0,0,0,0,0,0,2],
[2,0,2,0,2,0,2],
[2,0,0,2,0,2,2],
[2,2,0,2,0,2,2],
[2,0,0,0,0,0,2],
[2,2,2,2,2,0,2]]
def move(srcx,srcy,dstx,dsty):
if srcx==dstx and srcy==dsty:**到终点返回**
dx.append(srcx)
dy.append(srcy)
return True
if maze[srcx+1][srcy]==0:**往下走**
dx.append(srcx)
dy.append(srcy)
srcx+=1
elif maze[srcx][srcy+1]==0:**往右走**
dx.append(srcx)
dy.append(srcy)
srcy += 1
else:
maze[srcx]