广度优先查找之迷宫问题

技术广度优先查找之迷宫问题 广度优先查找之迷宫问题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)

相关推荐

  • 如何在Cubieboard上搭建个人云存储

    技术怎么在Cubieboard上搭建个人云存储这篇文章将为大家详细讲解有关怎么在Cubieboard上搭建个人云存储,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。准备工作

    攻略 2021年12月13日
  • 如何理解mysql中的union limit exists关键字

    技术如何理解mysql中的union limit exists关键字这篇文章给大家介绍如何理解mysql中的union limit exists关键字,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

    攻略 2021年10月21日
  • Python如何通过xpath属性爬取豆瓣热映的电影信息

    技术Python如何通过xpath属性爬取豆瓣热映的电影信息本篇文章给大家分享的是有关Python如何通过xpath属性爬取豆瓣热映的电影信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,

    攻略 2021年11月11日
  • 向心力公式,向心力和向心加速度的计算公式

    技术向心力公式,向心力和向心加速度的计算公式向心力:F=Mω²r v为线速度 单位m/s,ω为角速度 单位rad/s,m为物体质量 单位kg,r为物体的运动半径 单位m向心力公式。 向心加速度: a(n)=V²/r a(

    生活 2021年10月20日
  • Sequoiadb中怎么进行分组去重(sql分组去重)

    技术Sequoiadb中怎么进行分组去重这篇文章主要讲解了“Sequoiadb中怎么进行分组去重”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Sequoiadb中怎么进行

    攻略 2021年12月22日
  • AOP三剑客的研究与运用

    技术AOP三剑客的研究与运用 AOP三剑客的研究与运用简介
    APT:APT(Annotation Processing Tool)即注解处理器,是一种处理注解的工具,确切的说它是javac的一个工具,它

    礼包 2021年12月20日