游戏算法

四叉树算法

     四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构。它将已知范围的空间等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某种要求后停止分割。四叉树的结构比较简单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查询效率,因此四叉树是GIS中常用的空间索引之一。常规四叉树的结构如图所示,地理空间对象都存储在叶子节点上,中间节点以及根节点不存储地理空间对象。

 

游戏状态机

    有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件

    有限状态机元素:
     1. 状态,用来定义行为以及可能产生动作
     2. 状态转换,从一种状态到另一种状态的转移
     3. 规则或条件,必须以此来允许状态转换
     4. 输入事件,由外部或内部产生的,可能触发规则并导致状态变换

    结合模糊逻辑和有限状态机,就产生了模糊状态机。模糊状态机中,单位不是绝对的处于某种状态,而是同时处于几种状态,只是每种状态的比重不同

 

Dijkstra算法

    假设有两个集合或者说两个表,表A和表B
    表A表示生成路径,表B表示最后确定的路径
    1.从原点出发,遍历检查所有与之相连的节点,将原点和这些节点存放到表A中,并记录下两节点之间的代价。
    2.将代价最小的代价值和这两节点移动到表B中(其中一个是原点)。
    3.把这个节点所连接的子节点找出,放入到表A中,算出子节点到原点的代价
    4.重复第二步和第三步直到表A为空。然后根据表B中的数据算出最优树。

 

a*算法

     A*算法最为核心的部分,就在于它的一个估值函数的设计上:f(n)=g(n)+h(n)

      其中f(n)是每个可能试探点的估值,它有两部分组成:
          一部分,为g(n),它表示从起始搜索点到当前点的代价(通常用某结点在搜索树中的深度来表示)。
           另一部分,即h(n),它表示启发式搜索中最为重要的一部分,即当前结点到目标结点的估值,
     h(n)设计的好坏,直接影响着具有此种启发式函数的启发式算法的是否能称为A*算法。

          A*算法与和Dijkstra 算法的联系就在于:当g(n)=0时,该算法类似于DFS,当h(n)=0时,该算法类似于BFS, 如果h(n)为0,只需求出g(n),即求出起点到任意顶点n的最短路径,则转化Dijkstra算法

posted on 2014-04-13 20:27  kangbry  阅读(474)  评论(0编辑  收藏  举报

导航