梦幻西游自动寻路的寻路算法怎么算?

作者&投稿:文封 (若有异议请与网页底部的电邮联系)
梦幻西游的自动寻路问题~

原来的开过的,但因为有错误所以停了一个多月,现在更新过都没问题了,而且十分方便

我也在做这个 不用碰撞检测 你查查A*算法 用这个就行 地图必须是瓦片地图(基于网格的寻路)

A*寻路算法 A*(A-Star)算法是一种静态路网中求解最短路最有效的方法。
  公式表示为: f(n)=g(n)+h(n),
  其中f(n) 是节点n从初始点到目标点的估价函数,
  g(n) 是在状态空间中从初始节点到n节点的实际代价,
  h(n)是从n到目标节点最佳路径的估计代价。
  保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取:
  估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。
  如果 估价值>实际值, 搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。
  估价值与实际值越接近,估价函数取得就越好。
  例如对于几何路网来说,可以取两节点间欧几理德距离(直线距离)做为估价值,即f=g(n)+sqrt((dx-nx)*(dx-nx)+(dy-ny)*(dy-ny));这样估价函数f在g值一定的情况下,会或多或少的受估价值h的制约,节点距目标点近,h值小,f值相对就小,能保证最短路的搜索向终点的方向进行。明显优于Dijstra算法的毫无无方向的向四周搜索。
  conditions of heuristic
  Optimistic (must be less than or equal to the real cost)
  As close to the real cost as possible
  主要搜索过程:
  创建两个表,OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。
  遍历当前节点的各个节点,将n节点放入CLOSE中,取n节点的子节点X,->算X的估价值->
  While(OPEN!=NULL)
  {
  从OPEN表中取估价值f最小的节点n;
  if(n节点==目标节点) break;
  else
  {
  if(X in OPEN) 比较两个X的估价值f //注意是同一个节点的两个不同路径的估价值
  if( X的估价值小于OPEN表的估价值 )
  更新OPEN表中的估价值; //取最小路径的估价值
  if(X in CLOSE) 比较两个X的估价值 //注意是同一个节点的两个不同路径的估价值
  if( X的估价值小于CLOSE表的估价值 )
  更新CLOSE表中的估价值; 把X节点放入OPEN //取最小路径的估价值
  if(X not in both)
  求X的估价值;
  并将X插入OPEN表中; //还没有排序
  }
  将n节点插入CLOSE表中;
  按照估价值将OPEN表中的节点排序; //实际上是比较OPEN表内节点f的大小,从最小路径的节点向下进行。
  启发式搜索其实有很多的算法,比如:局部择优搜索法、最好优先搜索法等等。当然A*也是。这些算法都使用了启发函数,但在具体的选取最佳搜索节点时的策略不同。象局部择优搜索法,就是在搜索的过程中选取“最佳节点”后舍弃其他的兄弟节点,父亲节点,而一直得搜索下去。这种搜索的结果很明显,由于舍弃了其他的节点,可能也把最好的
  节点都舍弃了,因为求解的最佳节点只是在该阶段的最佳并不一定是全局的最佳。最好优先就聪明多了,他在搜索时,便没有舍弃节点(除非该节点是死节点),在每一步的估价
  中都把当前的节点和以前的节点的估价值比较得到一个“最佳的节点”。这样可以有效的防止“最佳节点”的丢失。那么A*算法又是一种什么样的算法呢?其实A*算法也是一种最
  好优先的算法。只不过要加上一些约束条件罢了。由于在一些问题求解时,我们希望能够求解出状态空间搜索的最短路径,也就是用最快的方法求解问题,A*就是干这种事情的!
  我们先下个定义,如果一个估价函数可以找出最短的路径,我们称之为可采纳性。A*算法是一个可采纳的最好优先算法。A*算法的估价函数可表示为:
  f'(n) = g'(n) + h'(n)
  这里,f'(n)是估价函数,g'(n)是起点到终点的最短路径值,h'(n)是n到目标的最断路经的启发值。由于这个f'(n)其实是无法预先知道的,所以我们用前面的估价函数f(n)做
  近似。g(n)代替g'(n),但 g(n)>=g'(n)才可(大多数情况下都是满足的,可以不用考虑),h(n)代替h'(n),但h(n)<=h'(n)才可(这一点特别的重要)。可以证明应用这样的估价
  函数是可以找到最短路径的,也就是可采纳的。我们说应用这种估价函数的最好优先算法就是A*算法。哈。你懂了吗?肯定没懂。接着看。
  举一个例子,其实广度优先算法就是A*算法的特例。其中g(n)是节点所在的层数,h(n)=0,这种h(n)肯定小于h'(n),所以由前述可知广度优先算法是一种可采纳的。实际也是
  。当然它是一种最臭的A*算法。
  再说一个问题,就是有关h(n)启发函数的信息性。h(n)的信息性通俗点说其实就是在估计一个节点的值时的约束条件,如果信息越多或约束条件越多则排除的节点就越多,估价函
  数越好或说这个算法越好。这就是为什么广度优先算法的那么臭的原因了,谁叫它的h(n)=0,一点启发信息都没有。但在游戏开发中由于实时性的问题,h(n)的信息越多,它的计
  算量就越大,耗费的时间就越多。就应该适当的减小h(n)的信息,即减小约束条件。但算法的准确性就差了,这里就有一个平衡的问题。
  }

没可能会有人告诉你的呀 人家那是网易的机密


梦幻西游移到指定坐标
到那个场景,点屏幕左上角的第三个灯笼,然后光标在地图上就会有座标提示了,找到点下左键就自己跑着去了

梦幻西游寻宝十二时辰副本攻略 梦幻西游寻宝十二时辰副本怎么玩_百度知 ...
1、副本是5人普通副本,从房玄龄处进入副本。过场动画之后自动寻路到博古斋开始小游戏,该玩法类似四灵印鉴宝玩法,需要在60秒内找到10件对应要求的物件,选错则扣除10秒。2、小游戏玩法完成后,可在当前频道打出“老板好了吗”进入下一阶段。3、注意:你在当前打字时的时辰决定第二阶段触发的支线,...

梦幻西游的场景地图
地图名地图介绍 整个游戏世界共包含20个小地图打开世界地图:点击主界面左上角图标打开场景地图:点击世界地图界面左上角绿色箭头小地图用法1、点击小地图上位置可自动寻路2、点击世界地图上场景快速传送3、点击场景地图左上角放大镜图标可搜索本场景内的所有NPC 历史上有名的大城市,从西周到大唐,长...

梦幻西游怎样跑商
一、首先找到白虎堂总管领取任务,如下图所示:二、从帮派出来,到长安城,点击驿站老板,系统自动寻路,去地府;三、地府有两个货商,找到价格最低的商品,买最大数量。四、传送到长安城,到江南野外,到建邺城北俱芦洲;五、北俱芦洲也有两个商人,在售价最高的商人那里卖掉身上的商品,然后买最大...

梦幻西游三维版青衣客坐标多少介绍_梦幻西游三维版青衣客坐标多少是什...
首先,玩家需要定位到牛鼻子老道,但请注意,他并不是真正的青衣客。根据任务指引,玩家需要前往千金楼的屋顶,坐标为531.652。跳上屋顶后,会发现一个发光的区域,进入后就会触发任务。后续的任务通常会有自动寻路功能,无需过多操作。寻找青衣客的支线任务围绕着追查神秘人物展开。玩家从南门守卫处获得...

梦幻西游青丘可以进两次吗
2、第一条路,距离稍微近一点,买一个或者自己插一个大唐国境的旗子,点击飞过去,非常的方便。3、出国境之后,打开小地图就可以看到青丘的位置了,大家可以使用小地图上的自动寻路功能,方便的很,到达青丘点击传送人对话即可进入。4、第二条路,通过飞行旗或者跑动到驿站,点击车夫与之对话,让她帮忙...

梦幻西游里有自动寻径的吗?
目前没有自动寻路,还得自己走过去,地图只给你标明位置,你可以在地图里查到当前地图里的NPC,却不能寻路,不能不说这是梦幻的一大问题啊!

梦幻西游快速找到坐标位置
其实也简单,梦幻的坐标都是一样的,从左到右变大,从下到上变大。知道坐标了,就知道大概位置。然后在地图上一点就会自动走过去。在自动走的时候,你再找到准确位置点一下,就错不了了。

在梦幻西游里我要做运镖任务,怎么从长安走到方寸?
2条路 1.长安-江南野外-建业-东海湾-傲来国-花果山-北惧-长寿郊外-长寿村-方寸.2.长安-大唐国境-大唐境外-长寿郊外-长寿村-方寸.我一般走第二条...因为有自动寻路...

梦幻西游中北俱北俱芦洲怎么去
先到东海湾,在沉船入口的旁边有一位船夫,点击它,说要去傲来国。到了傲来国后,打开地图,会看到花果山三个字,点击那三个字,便会开启自动寻路,等到达了那里,再进到花果山,再次打开地图,会看到左上角有北俱芦洲三个字,再次点击,打开自动寻路,到达后发现那里有一个老人,点击那个老人,说要...

怀安县15627344093: 梦幻西游自动寻路的寻路算法怎么算? -
富贡氨茶: A*寻路算法 A*(A-Star)算法是一种静态路网中求解最短路最有效的方法.公式表示为: f(n)=g(n)+h(n), 其中f(n) 是节点n从初始点到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的...

怀安县15627344093: 梦幻西游怎么算配速BB 高自己多少速度? -
富贡氨茶: 宝宝应该比人的速度高30%.才可以绝对比人快.1.这里的高30%可以是没有敏捷技能的情况下,纯粹比人高30%速度.不过宝宝抗性会很差.举例如果人的速度是510的话,那么宝宝的速度应该是510*1.3=663.2.还可以打本小敏,那么小敏增...

怀安县15627344093: 有关A* 寻路算法. 看了这个算法 大致都明白.就是有点不大清楚. -
富贡氨茶: 1. B的G值是指从起点A开始,到达该点的最短距离,和B在不在最短路径上没有关系.2. 不是遍历所有路径,而是所有点.对于m*n的矩阵, 遍历所有点的复杂度是m*n(多项式复杂度),而遍历所有路径的复杂度是4的(m*n)次幂(每个点都有4个可能的方向).从幂指数复杂度降低到多项式复杂度,这就是A*算法的意义所在.3. 最优路径是要从终点一步步倒退回来.比如终点的G值是k,那么最多需要4*k次查找,依然是多项式复杂度.但多数问题(对于纯算法题来说)只是需要知道到达终点的步骤,很少要你找出固定路径的.

怀安县15627344093: A* 寻路算法 -
富贡氨茶: A*寻路算法 是不是要遍历所有可能的路径,最终确定所有点的G值(假设没有1. B的G值是指从起点A开始,到达该点的最短距离,和B在不在最短路径上

怀安县15627344093: 梦幻西游自动寻路功能是好还是坏?
富贡氨茶: 我个人认为应该算坏吧,上次开了自动寻路以后系统就开始卡,要不然自动寻路可以跑远点还好,可是只能跑一小段,根本没用,还不如自己走呢!

怀安县15627344093: 西游天下游戏内自动寻路有几种方法? -
富贡氨茶: "自动寻路方法一:点击游戏屏幕右上端“小地图”的左下角“场景地图”按钮,便会弹出当前地图与NPC列表.在列表中点击你想要寻找的NPC名称,就会自动移动到该NPC身边,同时...

怀安县15627344093: 最优寻路/遍历算法 -
富贡氨茶: 你说的是图的搜索算法,不是树的算法.看你的要求,推荐用贪心算法.每次从当前的所有下层结点当中选择花费最小的子结点进入,之后也都是.不过对这些整数问题,贪心未必能够找到最好的路径,真正最好的路径应该是使用动态规划算法的.找一本计算机竞赛的辅导书吧,上面对动态规划讲的会可以的.另外还有一种什么网络流算法,我一直没学会,你可以试试看,也是找图的最短路径的.对于给定2结点之间的搜索,你可以用双向广度优先算法,从2个结点同时出发,向路径中间结点搜索最短路径.

怀安县15627344093: 游戏寻路算法 -
富贡氨茶: 1.四种算法是DFS,BFS,Heuristic DFS, Heuristic BFS 这是建立在VC基础上的2.高数和线代是必须的,还牵涉到数分和运筹学的知识

怀安县15627344093: 寻路算法实现 -
富贡氨茶: 用Dijkstra算法,我做的给你个参考,下面各点是有距离的(移动力),BIG表示不可通过 #define BIG 32767 //无穷大 int pre[6]={0}; //这是关键!pre数组用于记录每个点的前趋,这样算出最短路径后,就可以递归出路径经过的点 int Distance[6]...

怀安县15627344093: 梦幻西游怎么跑商?
富贡氨茶:建议40级后再跑商~因为跑商需要去北具~ 现在跑商很容易~你只要记住 长安商品能买进的价格:佛珠7000以下;扇子3800以下;武器4000以下. 地府商品能买进的价格:首饰4300以下;纸钱3000以下;夜明珠8000以下. 北具商品能买进的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网