广度优先查找之迷宫问题

技术广度优先查找之迷宫问题 广度优先查找之迷宫问题1 from collections import deque2 3 maze = [4 [1, 1, 1, 1, 1, 1, 1, 1, 1,

广度优先查找之迷宫问题

一来自集合导入

2

3迷宫=[

4 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

5 [1, 0, 0, 1, 0, 0, 0, 1, 0, 1],

6 [1, 0, 0, 1, 0, 0, 0, 1, 0, 1],

7 [1, 0, 0, 0, 0, 1, 1, 0, 0, 1],

8 [1, 0, 1, 1, 1, 0, 0, 0, 0, 1],

9 [1, 0, 0, 0, 1, 0, 0, 0, 0, 1],

10 [1, 0, 1, 0, 0, 0, 1, 0, 0, 1],

11 [1, 0, 1, 1, 1, 0, 1, 1, 0, 1],

12 [1, 1, 0, 0, 0, 0, 0, 0, 0, 1],

13 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

14 ]

15迪拉姆=[

16x,y: (x,y 1),#右

17x,y: (x 1,y),#下

18x,y: (x,y-1),#左

19x,y: (x-1,y),#上

20 ]

21

22

23 def打印_迷宫_路径(路径):

24打印('迷宫的最短路径为)

25 real_path=[]

26 cur_node=路径[-1]

27 while cur_node[2]!=-1:

28实数_path.append(cur_node[:2])

29 cur_node=路径[cur_node[2]]

30 real_path.append(路径[0][:2])

31 real_path.reverse()

32打印(真实路径)

33

34

35 def迷宫_路径_队列(开始,结束):

36 m_queue=deque()

37m _ queue。追加(*(开始,-1))

38路径=[]

39迷宫[开始[0]][开始[1]]=2

40 while len(m_queue) 0:

41 cur_node=m_queue.popleft()

42 path.append(cur_node)

43 if路径[-1][:2]==end:

44 print_maze_path(路径)

45返回真

46表示目录:中的目录

47 next_node=dir(cur_node[0],cur_node[1])

48 if maze[next _ node[0]][next _ node[1]]==0:

49迷宫[next_node[0]][next_node[1]]=2

50 m_queue.append((*next_node,len(path)-1))

51 else:

52 # 主要操作可用来调整小路序列,介于问题的复杂度,不进行操作

53关

54 else:

55打印('不存在能出迷宫的路径)

56返回假

57

58

59 if __name__=='__main__':

60迷宫_路径_队列((1,1),(1,8))

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/135152.html

(0)

相关推荐

  • 如何进行CVE-2017-16943-进出口-UAF脆弱性分析

    技术怎么进行CVE-2017-16943-Exim-UAF漏洞分析本篇文章为大家展示了怎么进行CVE-2017-16943-Exim-UAF漏洞分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希

    2021年12月20日
  • ps内容识别填充,照片中混入别的人怎么p掉

    技术ps内容识别填充,照片中混入别的人怎么p掉照片中混入别的人怎么p掉?照片中混入别的人怎么p掉ps内容识别填充,如何去除照片中多余的人物,杂物,我讲一种最简单快速的办法,需要有最新版本的 PS CC 2019,这个功能

    生活 2021年10月22日
  • 如何在VMware ESXi 搭建的虚拟机上进行京胜物联网模拟器的配置

    技术如何在VMware ESXi 搭建的虚拟机上进行京胜物联网模拟器的配置这篇文章给大家介绍如何在VMware ESXi 搭建的虚拟机上进行京胜物联网模拟器的配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能

    攻略 2021年12月10日
  • c#的ScaleOPC.DLL功能有哪些

    技术c#的ScaleOPC.DLL功能有哪些本篇内容主要讲解“c#的ScaleOPC.DLL功能有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c#的ScaleOPC.D

    攻略 2021年11月26日
  • Oracle 12c R2版本 Application Containers的特性是什么

    技术Oracle 12c R2版本 Application Containers的特性是什么本篇文章给大家分享的是有关Oracle 12c R2版本 Application Containers的特性是什么,小编觉得挺实

    攻略 2021年11月12日
  • bootstrap如何实现响应列表(bootstrap可以写动态效果吗)

    技术Bootstrap中如何实现加载效果这篇文章主要讲解了“Bootstrap中如何实现加载效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Bootstrap中如何实现

    攻略 2021年12月16日