Witam chcę zrobić skrypt, który wykryję najkrótszą drogę do celu i nie mogę sobie z tym poradzić, napiszę co udało mi się zrobić.
Zapis jest w systemie binarnym 01010101 gdzie 0 to jest miejsce wolne, a 1 do ominięcia!
Start to początek drogi.
szerokosc i wysokosc to ilość kratek.
Proszę o pomoc
<script>
var start = 37;
var koniec = 88;
var block='1111111111111111111111111111111111111000000001
11111111111111110000000011111111111111011101110001111111
111111101110111100111111111111110111011111000000111111111
000000011111111111111111100000000111111111100111000000001
001111111110011100000000000000000100000000000000000000000
010010000000000000000000001000000000000000000000000100000
000000000000000000010000000000000000011111001000000000000
000011111100100000000000000011111111010000000000000001111
11110100000000001000011111111010000000000000001111111101
00000000000000011111111010000000000000000001100001000010
000000000000110000100000000000000000000000011111111111111111111111111';
var szerokosc = 25;
var wysokosc = 25;
function block2(start,koniec,szerokosc,wysokosc){
var typ, typ2;
if(start > koniec){
typ = start-koniec;
typ2 = 0;
}else if( start < koniec){
typ = koniec - start;
typ2 = 1;
}
var i = 0;
//to do poprawy(Nie mam pojęcia jak mogę to zrobić ;/)
for (n in block) {
if(n < start && block[n] == 0 && n > koniec && n != koniec){
kroki[i] = new Object;
kroki[i].typ = 'prawo';
i++;
}else if(n > start && block[n] == 0 && n < koniec && n != koniec){
kroki[i] = new Object;
kroki[i].typ = 'prawo';
i++;
}else if(n+szerokosc > start && block[n+szerokosc] == 0 && n+szerokosc <= koniec && n+szerokosc != koniec){
kroki[i] = new Object;
kroki[i].typ = 'gora';
i++;
}else if(n-szerokosc > start && block[n-szerokosc] == 0 && n-szerokosc <= koniec && n-szerokosc != koniec){
kroki[i] = new Object;
kroki[i].typ = 'dol';
i++;
}
}
for(d in kroki){
alert(kroki[d].typ);
}
}
block2();
</script>