js實現A 尋路演算法

2021-07-16 05:14:37 字數 950 閱讀 8960

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中是否有值,如果沒有則無法到達終點,結束尋路...