12.14学习内容

这篇博客探讨了如何使用A*搜索算法来开发迷宫游戏。文章介绍了迷宫的随机生成方法,如深度优先遍历、广度优先遍历和递归回溯算法,并详细讲解了A*算法的工作原理和优缺点。此外,还提到了迭代加深A*(IDA*)算法作为解决A*空间复杂度问题的策略。最后,提到了二维数组在游戏地图绘制中的应用。
摘要由CSDN通过智能技术生成

基于A*搜索算法迷宫游戏开发

迷宫游戏分解:分为三部分,迷宫的自动随机生成,迷宫行走的轨迹设定,A*迷宫自动搜索路径。

(该图为其他博主的图,拷贝学习)在这里插入图片描述

随机生成迷宫可以用到多种算法,包括深度优先遍历、随机prim算法、递归回溯算法:

DNF深度优先遍历算法:深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,一般用堆数据结构来辅助实现DFS算法。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。(按照一定的顺序遍历树,然后将数据放入栈中,结束遍历后弹出栈内所有元素,结束算法)

BFS广度优先遍历算法:Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。BFS属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。一般用队列数据结构来辅助实现BFS算法。

A*算法:(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,公式表示为: f(n)=g(n)+h(n), 其中, f(n) 是从初始状态经由状态n到目标状态的代价估计, g(n)是在状态空间中从初始状态到状态n的实际代价, h(n) 是从状态n到目标状态的最佳路径的估计代价。保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取(或者说h(n)的选取)。
我们以d(n)表达状态n到目标状态的距离,那么h(n)的选取大致有如下三种情况

  1. 如果h(n)<d(n)到目标状态的实际距离,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。
  2. 如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行, 此时的搜索效率是最高的。
  3. 如果h(n)>d(n),搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

 A算法的特点:A算法在理论上是时间最优的,但是也有缺点:它的空间增长是指数级别的。

IDA算法:这种算法被称为迭代加深A算法,可以有效的解决A*空间增长带来的问题,甚至可以不用到优先级队列。

可以利用二维数组绘制地图,二维数组在游戏里面也应用很多,比如贪吃蛇和俄罗斯方块,其原理就是移动数组方块。很多游戏也将二维数组铺满整个地面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值