python判断是否能走出迷宫

1.选择走向,比如右-下-左-上,并且将走过的那个点lst.append存储到lst中
2.通过continue结束本次余下条件的判断,并使用lst[-1]坐标点判断下次的走向
3.将走过的坐标对应的值改为2,这样无路可走时可以原路返回


maze=[[1, 1, 1, 1, 1, 1, 1, 1, 1],
      [1, 0, 0, 1, 0, 0, 1, 1, 1],
      [1, 1, 0, 1, 0, 1, 1, 1, 1],
      [1, 1, 0, 0, 0, 1, 1, 1, 1],
      [1, 1, 1, 1, 0, 0, 0, 1, 1],
      [1, 1, 1, 1, 1, 1, 0, 1, 1],
      [1, 1, 1, 1, 1, 0, 0, 0, 1],
      [1, 1, 1, 1, 1, 0, 1, 0, 1],
      [1, 1, 1, 1, 1, 1, 1, 1, 1]]
start=(1,1)
end=(7,7)
xy=start
lst=[]
lst.append(xy)
while lst:#lst存储走过的坐标,当lst不为空有下面几种处理方式
    xy=lst[-1]
    x, y = xy
    if (x,y)==end:#如果坐标和终点一致,说明到达终点
        print('到达终点',lst)
        break
    if maze[x][y+1]==0:#向右
        lst.append((x,y+1))
        maze[x][y+1]=2
        continue#结束本次循环,以该点再次判断走向
    if maze[x+1][y]==0:#向下
        lst.append((x+1,y))
        maze[x + 1][y] =2
        continue
    if maze[x][y-1]==0:#向左
        lst.append((x,y-1))
        maze[x][y-1] =2
        continue
    if maze[x-1][y]==0:#向上
        lst.append((x-1,y))
        maze[x - 1][y] =2
        continue
    else:
        lst.pop()  #说明前后左右都走不了,就退回上个坐标点
else:
    print('此路不通')  #当lst不为空则说明回到了原点(1,1),并且把原点给pop掉了

 最后运行结果:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值