var m = "000001000100000000010000100000"+ "001001010100110110010000100000"+ "000001010000100000010000000000"+ "001101010101111011111100111111"+ "111001000100000000000000000000"+ "000001010001111110011111001100"+ "010111010100000000010000000000"+ "000000010100000000000000000000"+ "000000000000000010000000000000"+ "111111111111111111111111111111"; var start = {x:0, y:0}; var goal = {x:29, y:1}; console.time('aStar'); var map = stringToMap(m, 30, 10); var result = aStar( map, start, goal); console.timeEnd('aStar'); console.log(listToString(result)); document.getElementById("points").innerHTML = listToString(result); var table = ""; for (var i = 0; i < map.length; i++) { table += ""; for (var j = 0; j < map[0].length; j++) { if (map[i][j] != 0) table += ''; else table += ''; }; table += ""; }; table += "
"; document.getElementById("points").innerHTML = table; document.getElementById(start.x+'-'+start.y).style.backgroundColor = "#254B4F" ; for (var i = 0; i < result.length; i++) { document.getElementById(result[i].x+'-'+result[i].y).style.backgroundColor = "#946652" ; }; document.getElementById(goal.x+'-'+goal.y).style.backgroundColor = "#2F5D5E" ; function stringToMap (str, width, height) { var map = new Array(height); var c = 0; for (var i = 0; i < height; i++) { map[i] = new Array(width); for (var j = 0; j < width; j++) { map[i][j] = parseInt(str[ c ]); c++; }; }; return map; } function listToString (arr) { var str = ""; for (var i = 0; i < arr.length; i++) { str += "("+arr[i].x+","+arr[i].y+") "; }; return str; }