@ 最短路径

我们试图解决这样一个问题,将游戏中的对象从起点移动到目标点。

A.寻路算法 解决了寻找最优路径的问题,这条路径可以避开障碍物,躲避敌人,并最大限度地降低成本(燃料,时间,距离,设备,金钱等)。

B. 移动算法 解决了沿着一条路移动的问题。

有时候,我们只需要对其中一种花费精力。

在一个极端情况下,一个复杂的探测器与一个简单的移动算法相结合,可以在物体开始移动时找到一条路径,物体将沿着这条路径行进,而忽视其他一切。在另一个极端,一个(只会移动的)系统不会对最佳路径进行搜索(相反,初始“路径”将是一条直线),而是考虑到每个点周围的局部环境,一步一次。综合使用寻路和移动算法可以获得最佳结果。

寻路

1. 寻路算法简介

  a. 算法

  b. Dijkstra的算法和最佳优先搜索

  c.  A* 算法

2. 启发式

  a. 启发式的 A* 算法

  b. 速度 or 精确

  c. 估值因素

  d.确切的启发式

    i. 预先计算的启发式算法

    ii. 线性启发式

  e. 网格地图的启发式算法

    i. 曼哈顿距离

    ii. 对角线距离

    iii. 欧式距离

    iv. 欧式距离的平方

    v. 多个目标

    vi. 解决平局

  f. 近似启发式

3. 实现

  a. 草图

    i. 连通性

  b. 性能表现

  c. 源代码和 Demo

    i. Demos

    ii. 代码

  d. 设置表现

    i. 未排序的数组或链表

    ii. 排序数组

    iii. 排序链表

    iv. 二叉堆

    v. 排序的跳过列表

    vi. 索引数组

    vii. 哈希表

    viii. 播放数目

    ix. 桶队列

    x. 热门队列

    xi. 配对堆

    xii. 软堆

    xiii.序列堆

    xiv. 数据结构比较

    xv. 混合表示

  e. 与游戏循环的互动

    i. 提前退出

    ii. 可中断算法

    iii. 集体运动

    iv. 精致

4. A* 变种

  a. 束搜索

  b. 迭代加深搜索

  c. 动态加权

  d. 带宽搜索

  e. 双向搜索

  f. 动态 A* 和终身规划 A*

  g. 跳点搜索

  h. Theta*

 5. 处理移动障碍物

  a. 重新计算路径

  b. 路径拼接

  c. 观看地图更改

  d. 预测障碍物运动

6. 预先计算的路径使用的空间

  a.地点与方向

  b. 路径压缩

    i. 位置存储

    ii.方向存储

  c. 计算航路点

  d. 路径长度有限

  e. 摘要

猜你喜欢

转载自www.cnblogs.com/xuuold/p/10022960.html
今日推荐