I am trying to get my game to take the adjacent positions recursively, both on the sides (up, down, right, left) and on the diagonals.
However, when calling the recursive function again I can not pass the row or the column as a parameter.
Here my code:
//Comprueba que no se salga de la matriz, mira las posiciones adyacentes para ver si son iguales, si son iguales le suma la puntuación y pone el numero a cero.
public static int obtenerPuntuacion(int numeros[][], String coordenada) {
int numeroPosicion = ObtenerNumero(numeros, coordenada);
int fila = ObtenerFila(coordenada);
int columna = ObtenerColumna(coordenada);
int puntuacion = 0;
if (columna != 0 && numeroPosicion == numeros[fila][columna -1]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila][columna -1] = 0;
}
if (columna != 8 && numeroPosicion == numeros[fila][columna +1]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila][columna +1] = 0;
}
if (fila != 0 && numeroPosicion == numeros[fila -1][columna]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila -1][columna] = 0;
}
if (fila != 8 && numeroPosicion == numeros[fila +1][columna]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila +1][columna] = 0;
}
if (fila != 0 && columna !=8 && numeroPosicion == numeros[fila -1][columna+1]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila -1][columna+1] = 0;
}
if (fila != 8 && columna !=8 && numeroPosicion == numeros[fila +1][columna+1]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila +1][columna+1] = 0;
}
if (fila != 8 && columna !=0 && numeroPosicion == numeros[fila +1][columna-1]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila +1][columna-1] = 0;
}
if (fila != 0 && columna !=0 && numeroPosicion == numeros[fila -1][columna-1]) {
puntuacion = puntuacion + numeroPosicion;
numeros[fila -1][columna-1] = 0;
}
if (puntuacion == 0) {
puntuacion = puntuacion - numeroPosicion;
} else {
puntuacion = puntuacion + numeroPosicion;
numeros[fila][columna] = 0;
}
return puntuacion;
}
Recursive function:
public static void puntuacionRecursiva(int numeros[][], String coordenada) {
int numeroPosicion = ObtenerNumero(numeros, coordenada);
int fila = ObtenerFila(coordenada);
int columna = ObtenerColumna(coordenada);
if ( fila<0 || columna<0 || fila>=numeros.length || columna>=numeros[fila].length )
return;
if ( numeros[fila][columna]!=numeroPosicion )
return;
puntuacionRecursiva(numeros[fila][columna -1]);
puntuacionRecursiva(numeros[fila][columna +1]);
puntuacionRecursiva(numeros[fila-1][columna]);
puntuacionRecursiva(numeros[fila+1][columna]);
puntuacionRecursiva(numeros[fila+1][columna -1]);
puntuacionRecursiva(numeros[fila-1][columna +1]);
puntuacionRecursiva(numeros[fila-1][columna -1]);
puntuacionRecursiva(numeros[fila+1][columna +1])
}