Salve,
stò cercando di capire l'errore su questo metodo che dovrebbe stampare un "." sulle caselle adiacenti di una griglia composta da 2 caratteri.
la prima chiamata va a buon fine,ad esempio dandogli le coordinate 3,1:
-------------------------------------
X O O O X O X
O X X "X" X X O
X O X X X X X
-------------------------------------
con il mio metodo stampa:
-------------------------------------
X O O O X O X
O X . . . X O
X O X . X X X
-------------------------------------
io invece dovrei fare in modo che la griglia venga aggiornata cosi:
-------------------------------------
X O O O . O X
O . . . . . O
X O . . . . .
-------------------------------------
il metodo che ho creato è questo:
codice:
public void adiacenza(int x, int y){
boolean carattereSingolo = true;
for (int i = 0; i < l; i++){
for (int j = 0; j < h; j++){
if (campo[i][j] == campo[y][x] && (j == x && Math.abs(i - y) == 1 || i == y && Math.abs(j - x) == 1)){
campo[i][j] = '.';
carattereSingolo = false;}
}
}
if (!carattereSingolo){
campo[y][x] = '.';
}
}
come creare una ricorsione che non faccia scoppiare tutto??
ho provato a richiamare adiacenza(j,i) nell'if ma il problema sta nel fatto che il valore su quegli indici che ho appena inserito vengono aggiornati con il "." prima del nuovo controllo sulla variabile di esemplare campo,come posso fare?
:berto: