Código
do {//Loop1 System.out.println("Filsalida: " + Variable.filsalida + ". Colsalida: " + Variable.colsalida + ". i= " + i + ",j=" + j + ". camino[i][j]=" + camino[i][j] + ". c=" + c); if (camino[i][j] == c && j == Variable.filsalida && i == Variable.colsalida) { encontrado = true; } else if (camino[i][j] == c) { if (i + 1 < Variable.grande + 1) { if (camino[i + 1][j] == -8) { camino[i + 1][j] = c + 1; } } if (j + 1 < Variable.grande + 1) { if (camino[i][j + 1] == -8) { camino[i][j + 1] = c + 1; } } if (i - 1 > -1) { if (camino[i - 1][j] == -8) { camino[i - 1][j] = c + 1; } } if (j - 1 > -1) { if (camino[i][j - 1] == -8) { camino[i][j - 1] = c + 1; } } } //Mostrar(i, j); i = j = 0; for (int k = 0; k < Variable.grande + 1; k++) { for (int l = 0; l < Variable.grande + 1; l++) { } } //FinMostrar j++; } while (j < Variable.grande + 1 && !encontrado);
Esto es lo que tengo:
Código
public void Loop1(int i, int j, int c, boolean encontrado) { if (j < Variable.grande + 1 && !encontrado) { System.out.println("Filsalida: " + Variable.filsalida + ". Colsalida: " + Variable.colsalida + ". i= " + i + ",j=" + j + ". camino[i][j]=" + camino[i][j] + ". c=" + c); if (camino[i][j] == c && j == Variable.filsalida && i == Variable.colsalida) { encontrado = true; } else if (camino[i][j] == c) { if (i + 1 < Variable.grande + 1) { if (camino[i + 1][j] == -8) { camino[i + 1][j] = c + 1; } } if (j + 1 < Variable.grande + 1) { if (camino[i][j + 1] == -8) { camino[i][j + 1] = c + 1; } } if (i - 1 > -1) { if (camino[i - 1][j] == -8) { camino[i - 1][j] = c + 1; } } if (j - 1 > -1) { if (camino[i][j - 1] == -8) { camino[i][j - 1] = c + 1; } } } int k, l; k = l = 0; Mostrar(k, l); Loop1(i, j + 1, c, encontrado); } }
Si alguno(a) me podría decir en dónde puede estar mi error, se los agradecería, por favor! Este ciclo va dentro de otros do while pero cuando trato de reemplazar con lo recursivo no me produce el mismo resultado.