魔塔添加新的功能!

上一节我们做到了寻找可行走路径,但是不够
因为魔塔中充斥着各色各样的怪物,门。我们可行走的路径实在太少了!

现在我们作为一名玩家,想通关游戏,我们大概每层要做两件事情

  1. 用损血最少的方式找到所有宝物
  2. 用损血最少的方式到达下一层

第一件事情可能要用到我们的强化学习去弄了
所以这里我们关注的是第二件事情

我们想到下一层,再细化一下程序需要做什么?

  1. 找到下一层的路径
  2. 判断每条路径的损失(消耗血量、钥匙、陷阱等)

这里回到我们上一节的算法,做到第一步很简单,做到第二步需要添加比对条件,一旦地形复杂了速度就很慢!
所以我们需要一个新的算法来实现这个功能。

这里我们采用A算法来实现它(A也是除3D游戏外的主流寻路算法之一)

A*算法介绍

这里参考了A*介绍

这里就简单的概括一下,有兴趣的朋友可以参考上面的网站学习。

上一节我们介绍过Dijkstra算法,主要就是维护两个表open list和close list.然后通过松弛open list一步一步向外扩散标记每个点的最短路径。

A*算法就是在此之上进行改造,在标记最短路径的时候从(a>b)这种比较方式变成了(价值(a)> 价值(b))。

再简单一点说就是
这个价值:F = G + H
G可以简单理解成是之前的路径数,走到这里耗费的成本(步数或者加上血量损失之类的)
这个H就是预估成本,就是估算到终点的成本,这个预估成本纯度很高,通过调整H可以提高算法的效率。高效率才能让算法及时反应在操作上,谁也不想点一下、卡一下对吧?

A*算法实现

施工中

H实现

施工中

关于小游戏魔塔的优化算法(2)---用A*改造寻路算法相关推荐

  1. (Java小游戏)魔塔v1.0

    实现一个控制台操作的4399小游戏--魔塔 游戏情景如下: 勇士类 怪物类 怪物数组类 地图类 游戏类测试类 测试类 代码如下 勇士类Hero.java package com.nll.oop1; / ...

  2. c语言a 寻路算法,JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例

    本文实例讲述了JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法.分享给大家供大家参考,具体如下: 完整实例代码如下: A*寻路算法 #stage { border: 1px solid lig ...

  3. Creator 2.0.x 微信小游戏加载优化(一):定制wx-downloader

    转载请保留原文链接:https://blog.csdn.net/zzx023/article/details/89842503 微信小游戏的环境与正常web浏览器的环境相似,但很多细节上会有所不同,同 ...

  4. 贪吃蛇AI算法中的A star寻路算法

    A*寻路算法 在之前的贪吃蛇游戏比赛里,计算蛇吃食物路径时要用到寻路算法,于是就去了解了一下,以下是我的算法演化过程. 1.简单寻路–按图索骥 我一开始想到的方法就是最简单的:目标在哪个方位就往哪个方 ...

  5. 前端小游戏页面性能优化

    公司是做教育类游戏开发,以前是用flash制作,现在开始使用CreateJS框架开发Canvas游戏.今天突然收到一个任务:游戏在iPad2下面游戏会打不开,然后自动刷新,再加载不出来,然后再刷新,陷 ...

  6. Flappy Bird 一款C语言小游戏(图形优化版)(成功解决EasyX中putimage()未能实现第二张图片显示问题)

    首先要下载EasyX库,如果网上找不到或者想要老版本的可以在评论区或者直接私信我 首先导入图片 #include<graphics.h> #include<conio.h>in ...

  7. python自动寻路算法_python实现Dijkstra静态寻路算法

    算法介绍 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树.该算法常用于路由算法或者作为其他图算法的一个子模块. 当然目前也有人将它用来处理物流方面 ...

  8. a星算法python_Python-加速A星寻路算法

    如上所述,将closedSet生成一个集合. 我试着将openList编码为堆import heapq:import heapq def aStar(self, graph, current, end ...

  9. 抖音爆款小游戏《我飞刀玩得贼6》性能优化案例分享

    一.抖音网红小游戏,爱的魔力转圈圈 <我飞刀玩得贼6>是北京冰狮科技有限公司旗下睡神飞工作室推出的一款创新.io 类游戏,独创的魔性飞刀大作战玩法广受玩家喜爱,在 TapTap 上有超过 ...

最新文章

  1. Maven中jar版本冲突问题的解决
  2. Windows SID理解
  3. cmd 顺序启动服务_window下启动redis步骤和服务报错解决办法
  4. DHH观点:为什么我偏爱Ruby?
  5. [转]Tomcat优化之内存、并发、缓存
  6. 前端基础-HTML的的标签详解
  7. 递归思想完成n皇后问题
  8. JavaScript的this关键字的调用位置和绑定
  9. py获取前端的参数_Python小工具系列(3)之参数检查
  10. aixcoder 智能代码补全工具
  11. Android中Context的详细介绍
  12. 远程580解锁bl工具_一年让你多挣4万的工具丨又增VIVO新款保资料解锁!
  13. 专利服务器拒收 文件解压异常,电子申请常见问题解答20161024.doc-中国专利电子申请网.doc...
  14. PHP细说(加强版)
  15. 雅猴的脚印——2019年上半年
  16. 网站视频链接自动提取下载
  17. 自行搭建app分发平台
  18. 《小狗钱钱》理财摘录
  19. ubuntu如何卸载软件
  20. 你还深陷在上半年工作和生活的一团乱麻中?可以试一下我说的这个“破局”之法

热门文章

  1. redis:(error) MOVED报错的原因和解决
  2. day03-badboy-web
  3. 一次平平无奇的UDP维修过程
  4. 过百万,小小庆祝一下
  5. 未来 我们该何去何从
  6. 虹科带您了解HMI防爆认证
  7. 【Email】Java发送邮件接口与配置类
  8. C语言单链表基本操作总结
  9. 教你给多张图片进行名称编号
  10. STM32CubeMX实现串口中断通信