障碍物迷宫-固定

it2026-02-13  7

障碍物迷宫-固定

‘’‘迷宫是固定的,走出来,同样上下左右,0没有障碍物,1 有障碍物’’’

from collections import deque def migong(): dx=[1,0,-1,0] dy=[0,1,0,-1] maze1 = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] maze = [[0, 1, 0, 0, 0], [0, 0, 0, 1, 0], [0, 1, 0, 1, 0], [1, 1, 1, 0, 0], [0, 1, 0, 0, 1], [0, 1, 0, 0, 0]] print("===============原迷宫==========") for i in range(len(maze)): for j in range(len(maze[i])): print(maze[i][j],end=' ') print() q=deque([(0,0,0)]) maze[0][0] = 1 while len(q)>0: p=q.popleft() for i in range(4): x=p[0]+dx[i] y=p[1]+dy[i] if x<0 or y<0 or x>len(maze)-1 or y> len(maze[0])-1 or maze[x][y] == 1: continue maze[x][y]=1 maze1[x][y]=p[2]+1 q.append((x, y, p[2] + 1)) if x==len(maze)-1 and y==len(maze[0])-1: print("===============最终迷宫==========") for i in range(len(maze1)): for j in range(len(maze1[i])): print(maze1[i][j], end=' ') print() return p[2]+1 return -1 print(migong())

总结

还是做的慢,这次没有用字典用了列表,感觉有那么一点感觉了。两个列表才完成的最后路径的表示,但是这个表示有点问题,把所有节点都表示出来了==,还是要改一下改成只要最佳路径。再做几题就可以带权重了。 障碍物,边界,走过的节点,都一回事,都是不能往下继续的。 python是真的好用,我觉得java我写不出来,等下写一个试试。 1、因为忘记给走过节点赋值,出现过错误

存在问题

1、改只显示最佳路径

最新回复(0)