onload: function ()
cc.log(this.searchroad(map,0,0,4,4)) //傳入變數屬性,起始點座標和目標的座標。 整個**執行後,列印出的是起始點到目標點最近路徑的座標
},//其中的map.arr是二維陣列
searchroad:function(map,start_x,start_y,end_x,end_y)
//獲取周圍八個點的值
function surroundpoint(curpoint),,,
,,,,
]}//判斷點是否存在在列表中,是的話返回的是序列號
function existlist(point,list)
}return false;
}var openlist=, //開啟列表
closelist=, //關閉列表
result=, //結果陣列
result_index; //結果陣列在開啟列表中的序號
openlist.push();//把當前點加入到開啟列表中,並且g是0
doelse }}
}//如果開啟列表空了,沒有通路,結果為空
if(openlist.length==0)
openlist.sort(sortf);//這一步是為了迴圈回去的時候,找出 f 值最小的, 將它從 "開啟列表" 中移掉
}while(!(result_index=existlist(,openlist)));
//判斷結果列表是否為空
if(!result_index)
else );
currentobj=currentobj.parent;
}while (currentobj.x!=start_x || currentobj.y!=start_y);
}return result;
}});
js版 A 尋路演算法
對於初學者而言,a 尋路已經是個比較複雜的演算法了,為了便於理解,本文降低了a 演算法的難度,規定只能橫豎 四方向 尋路,而無法直接走對角線,使得整個演算法更好理解。簡而言之,a 尋路就是計算從起點經過該點到達終點的路程,並使得總路程達到最小值,因此引入乙個公式 f g h 其中,f是從起點經過該點...
js演算法之尋路
演算法流程說明 說明 起始節點記作s,目標節點記作e,對於任意節點p,從s到當前節點p的總移動消耗記作gp,節點p到目標e的曼哈頓距離記作hp,從節點p到相鄰節點n的移動消耗記作dpn,用於優先順序排序的值f n 記作fp 選擇起始節點s和目標節點e,將 s,0 節點,節點f n 值 放入openl...
迷宮尋路(A星尋路演算法)
題目 假設我們有乙個7 5大小的迷宮,如下圖所示,綠色格仔表示起點,紅色的格仔表示終點,中間的3個深灰色格仔表示障礙物。請找到一條從起點到終點最短的路徑。解題思路 需要引入兩個集合和乙個公式,如下 具體步驟 把起點放入openlist 檢查openlist中是否有值,如果沒有則無法到達終點,結束尋路...