Si hai ragione! Non ci avevo proprio fatto caso alla condizione del while più interno. Ho modificato il codice in questa maniera:
Credo dovrebbe andar bene..codice:class Sudoku{ public static boolean verificaSchema(int[][] schema){ //verifica righe int i=0; //indice riga int j=0; //indice colonna int k=1; boolean diversi = true; while(i<9 && diversi){ while(j<8 && diversi){ while(k>=j+1 && k<=8 && diversi){ if(schema[i][j]==schema[i][k]) diversi=false; k++; } j++; } i++; } //verifica colonne boolean diversi2=true; if(diversi==true){ i=0; //indice riga j=0; //indice colonna k=1; while(j<9 && diversi2){ while(i<8 && diversi2){ while(k>=i+1 && k<=8 && diversi2){ if(schema[i][j]==schema[k][j]) diversi2=false; k++; } i++; } j++; } } //verifica quadrato if(diversi && diversi2){ return diversi && diversi2; } }
Come potrei fare altrimenti?E come potresti testarlo con quel codice?

Rispondi quotando