|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
从迷宫起点走到终点,两种回溯的方式,就探索的for语句换一种,感觉一样,为什么一个能输出所有路径,一个只能输出一个路径,想半天理解不了求助啊。
#从起点[3,1]走到终点[5,5]
maze=[[1,1,1,1,1,1,1],
[1,0,1,0,0,1,1],
[1,0,1,0,1,0,1],
[1,0,0,0,0,0,1],
[1,0,1,1,1,0,1],
[1,0,0,0,0,0,1],
[1,1,1,1,1,1,1]]
dirs=[[1,0],[-1,0],[0,1],[0,-1]]
count=0
snake=[[3,1]]
def walk(x,y):
global count
if x==5 and y==5:
print("yes")
print(snake)
return
"""for dir in dirs: #这样写输出多条路?
nextnode=[x+dir[0],y+dir[1]]
if maze[nextnode[0]][nextnode[1]]==0:
maze[nextnode[0]][nextnode[1]]=2
snake.append([nextnode[0],nextnode[1]])
walk(nextnode[0],nextnode[1])
maze[nextnode[0]][nextnode[1]]=0
snake.pop()"""
for i in range(4): #这样写为什么只能输出一条路?
nextnode=[x+dirs[i][0],y+dirs[i][1]]
if maze[nextnode[0]][nextnode[1]]==0:
maze[nextnode[0]][nextnode[1]]=2
snake.append([nextnode[0],nextnode[1]])
walk(nextnode[0],nextnode[1])
maze[nextnode[0]][nextnode[1]]==0
snake.pop()
walk(3,1)
|
|