【数据结构与算法】智能寻路算法,《高德地图》的那些年。。。。。。

本文介绍了智能寻路算法中的广度搜索(BFS)原理,并通过一个自制迷宫游戏项目展示了其实现过程。通过绘制迷宫、设置起点和终点,利用BFS算法寻找最短路径。代码实现部分详细说明了关键步骤,适合初学者学习和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

繁花落尽,留下谁的足迹,珍藏于谁的记忆。

  嗨,这里还是狐狸~~

大家都用过或者都知道《百度地图》、《高德地图》这些APP吧,用的最多的莫过于其中的导航功能了,它可以帮你快速有效的找到你所需要的一条路径,用的时候十分的方便,那大家有想过其中的原理是什么吗,别人可以不知道,但程序员必须懂的——智能寻路算法,今天我就来分享有关智能寻路算法的知识。

广度搜索算法

当然啦,智能寻路算法也有很多种,我们挑其中的一种方式来详细讲解,那就是广度搜索算法。

广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历算法这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。基本过程,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。一般用队列数据结构来辅助实现BFS算法。

基本步骤

(1)给出一连通图,如图,初始化全是白色(未访问);

(2)搜索起点V1(灰色);

(3)已搜索V1(黑色),即将搜索V2,V3,V4(标灰);

(4)对V2,V3,V4重复以上操作;

(5)直到终点V7被染灰,终止;

(6)最短路径为V1,V4,V7.

 

迷宫

好像单纯讲这些,大家会觉得很枯燥,那么下面我就用一个小游戏的项目来告诉大家如何在实际项目中运用这个寻路算法,《迷宫》相信大家都玩过,今天我们来点不一样的,我们今天写的项目是自己来创建迷宫,然后运用寻路算法来找到一天正确而又最短的路径出来。

先向大家看下我们项目运行的效果图吧,这是我们的开始界面

 大家可能会觉得很low,但这不重要,界面啥的可以自己去优化,找些好看的素材就好了,嘻嘻,本人的审美不是很好,希望大家多多见谅!

然后我们按下s键都就可以来绘制我们的迷宫了,可以随意绘制,这都是没有问题的,但别把路都堵死了

 按下E之后设置我们的起点和终点,In代表起点,Out代表终点

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值