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;
}