Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Metodo que busca el camino. Como parametros tiene la matriz sobre la que busca
- // la i y la j que son las posiciones iniciales y el valor de la misma
- public static void encontrarCamino(int[][] matriz, int i, int j, int valor, int valorAnterior){
- int maximo = obtenerMaximo(matriz);
- //Va imprimiendo la secuencia de valores que sigue.
- System.out.println("(" + i + ", " + j + ") / " + valor);
- //Comprueba si puede moverse a cada una de las posiciones y si es asi se mueve a ella de forma recursiva.
- if( i - 1 >= 0 && j - 1 >= 0 && i - 1 < matriz.length && j - 1 < matriz[i].length && matriz[i - 1][j - 1] >= valor){
- encontrarCamino(matriz, i - 1, j - 1, matriz[i - 1][j - 1], valor);}
- else if( i - 1 >= 0 && j >= 0 && i - 1 < matriz.length && j < matriz[i].length && matriz[i - 1][j] >= valor ){
- encontrarCamino(matriz, i - 1, j, matriz[i - 1][j], valor);}
- else if( i - 1 >= 0 && j + 1 >= 0 && i - 1 < matriz.length && j + 1 < matriz[i].length && matriz[i - 1][j + 1] >= valor){
- encontrarCamino(matriz, i - 1, j + 1, matriz[i - 1][j + 1], valor);}
- else if( i >= 0 && j - 1 >= 0 && i < matriz.length && j - 1 < matriz[i].length && matriz[i][j - 1] >= valor){
- encontrarCamino(matriz, i, j - 1, matriz[i][j - 1], valor);}
- else if( i >= 0 && j + 1 >= 0 && i < matriz.length && j + 1 < matriz[i].length && matriz[i][j + 1] >= valor){
- encontrarCamino(matriz, i, j + 1, matriz[i][j + 1], valor);}
- else if( i + 1 >= 0 && j - 1 >= 0 && i + 1 < matriz.length && j - 1 < matriz[i].length && matriz[i + 1][j - 1] >= valor){
- encontrarCamino(matriz, i + 1, j - 1, matriz[i + 1][j - 1], valor);}
- else if( i + 1 >= 0 && j >= 0 && i + 1 < matriz.length && j < matriz[i].length && matriz[i + 1][j] >= valor){
- encontrarCamino(matriz, i + 1, j, matriz[i + 1][j], valor);}
- else if( i + 1 >= 0 && j + 1 >= 0 && i + 1 < matriz.length && j + 1 < matriz[i].length && matriz[i + 1][j + 1] >= valor){
- encontrarCamino(matriz, i + 1, j + 1, matriz[i + 1][j + 1], valor);}
- else{
- if(valor == maximo){System.out.println("El ultimo valor es el maximo");}
- else{System.out.println("No es posible alcanzar el maximo");};
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement