这个不一致的网格需要什么样的搜索算法?

时间:2015-10-22 08:19:02

标签: javascript arrays search math

我正在为我的游戏开发一个小工具,允许我和朋友点击地图布局并创建航点,然后找到最接近他们的方法。这是搜索完成时的外观http://i.imgur.com/luqi099.png

红线显示 应该如何搜索目标,现在它将跟随所有绿色节点

所有白点都是"非相关"彼此之间的距离差异很小,并且总是不同的。

绿点是前白点,是"走到"

红点是我最接近目标的节点。

今天我就是这样做的:

  1. 循环遍历节点并添加"权重"然后将新阵列推送到" Node-stack"
      

    for(i = 0; i< ... etc ....){

         

    newNode [0] =权重

         

    newNode [1] = OriginalIdFromCoordinates

         

    节点堆 .push(newNode)

         

    }

  2. 重量基本上是曼哈顿距离"开始"到"完成"加上从开始到节点[i]

    的距离
    1. A)获得最便宜的"我的" Node-stack" 中的节点,然后将其推送到" Cheap-stack" ,然后删除原来的& #34;节点" 条目堆栈
    2.   

      TmpWeight =无限;

           

      TMPI ;   for(i = 0; i< Node-stack .length; i ++){

           

      if(节点堆栈 [0]< TmpWeight ){// Node-stack [0] = NewNode [0]等

           

      TmpI = 节点堆栈 [0];

           

      TmpWeight = 节点堆栈 [1];

           

      }

           

      便宜堆栈 .push(TmpI + TmpWeight)

           

      节点stack.remove(TMPI)

           

      }

      使用添加权重重复步骤1,但现在是" Startcoord"是用于Cheap-stack 的最后一个coord,并执行所有这些直到Node-stack为空

      对于返回,我只需浏览列表并在接近节点时停止。

      所以我知道这可能是一种非常无效的方式......那就是为什么我也在寻求指导,我的方法如何更好地解决这个问题呢?

      所有其他搜索算法指南仅使用具有精确距离的完美方形网格,因此我找不到适合我的问题的任何内容

0 个答案:

没有答案