Вот что у меня есть для моего алгоритма поиска пути:
public void AAlg(int a, int b){
boolean bool=true;
while(bool) {
bool = false;
for (int i = 0; i <map.length; i++) {
for (int j = 0; j < map.length; j++) {
if(ifObj(i, j)) {
bool=true;
}
}
}
int smallest=N;
int[] coords = new int[2];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if((i==1&&j==0)||(i==2&&j==1)||(i==1&&j==2)||(i==0&&j==1)) {
findFGH(i+a,j+b);
if(f<smallest) {
smallest=f;
coords[0]=i+a;
coords[1]=j+b;
}
}
}
}
if(coords[0]==N-1&&coords[1]==.N-1) {
System.out.println("The distance travelled is "+cnt);
}
AAlg(coords[0], coords[1]);
cnt++;
}
N - длина сетки по ширине и высоте, и карта в порядке, карта. Это логическое значение [] [], со всем ложным, кроме случаев, когда есть препятствия. Я предполагал, что мой код будет немного переходить от квадрата к квадрату, повторяя и находя наиболее эффективный квадрат до go до следующего. Что это не так? Он просто бесконечно зацикливается.