我正在为我的游戏开发一个小工具,允许我和朋友点击地图布局并创建航点,然后找到最接近他们的方法。这是搜索完成时的外观http://i.imgur.com/luqi099.png
红线显示 应该如何搜索目标,现在它将跟随所有绿色节点
所有白点都是"非相关"彼此之间的距离差异很小,并且总是不同的。
绿点是前白点,是"走到"
红点是我最接近目标的节点。
今天我就是这样做的:
for(i = 0; i< ... etc ....){
newNode [0] =权重
newNode [1] = OriginalIdFromCoordinates
节点堆 .push(newNode)
}
重量基本上是曼哈顿距离"开始"到"完成"加上从开始到节点[i]
的距离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为空
对于返回,我只需浏览列表并在接近节点时停止。
所以我知道这可能是一种非常无效的方式......那就是为什么我也在寻求指导,我的方法如何更好地解决这个问题呢?
所有其他搜索算法指南仅使用具有精确距离的完美方形网格,因此我找不到适合我的问题的任何内容