zoukankan      html  css  js  c++  java
  • python走迷宫

    #coding=utf-8
    arr = []
    lu = []
    def zou(m,y,x,_y,_x):
    #到达新点,将当前所在点设置为墙
    m[y][x] = 0
    #将当前所在点添加进路线
    lu.append([x,y])
    if y==_y and x==_x:#判断是否到了目的地
    arr.append(list(lu))#将路线添加进路线组
    if y > 0: #往上探索
    if m[y - 1][x] != 0:
    zou(m, y - 1, x,_y,_x)
    if y < len(m)-1:#往下探索
    if m[y + 1][x] != 0:
    zou(m, y + 1, x,_y,_x)
    if x > 0: #往左探索
    if m[y][x-1]!=0:
    zou(m,y, x-1,_y,_x)
    if x < len(m[y]) - 1:#往右探索
    if m[y][x+1]!=0:
    zou(m,y, x+1,_y,_x)
    #确认该路线无法到达目的地,将当前所在点恢复为路
    m[y][x] = 1
    #退回上一步
    lu.pop()

    migong = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
    [0, 1, 0, 1, 0, 1, 0, 1, 1, 1],
    [0, 1, 0, 1, 0, 1, 0, 0, 1, 0],
    [0, 1, 0, 1, 1, 1, 0, 0, 1, 0],
    [0, 1, 0, 1, 0, 1, 1, 0, 1, 0],
    [0, 1, 0, 0, 0, 0, 0, 0, 1, 0],
    [0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

    def main():
    zou(migong,1,0,8,9)
    if len(arr)>0:
    cheng = 99999999999
    duan = []
    for i in range(len(arr)):
    if cheng > len(arr[i]):
    duan = arr[i]
    cheng = len(arr[i])
    print '第', i + 1, '条路:', arr[i]
    print '最短路径为:', duan
    else:
    print '没有可到达目的地的路径!'
    main()
  • 相关阅读:
    2019年湘潭大学程序设计竞赛(重现赛)
    牛客练习赛43
    2251: Code Cleanups
    【软件工程】读《构建之法》
    20150401 作业2 结对 四则运算
    四则运算
    Unity3d网格合并2
    Unity网格合并_材质合并
    Unity 5 Stats窗口
    Unity3D研究院之Unity5.x运行时动态更新烘培贴图
  • 原文地址:https://www.cnblogs.com/ningzhilin/p/9345824.html
Copyright © 2011-2022 走看看