Ciao a tutti popolo di HTML!
Sono alle prime armi con java e dopo aver studiato gli array e array di array sto cercando di fare un esercizio. E volevo chiedervi un vostro consiglio. Vi riporto il testo: "La classe Sudoku ha il solo metodo di classe seguente:
public static boolean verificaSchema(int[][] schema)
che riceve in ingresso una matrice di interi di dimensione 9×9 e restituisce true se la matrice rappresenta una soluzione valida per il gioco del Sudoku, false altrimenti. Scrivere la classe Sudoku e la classe ProvaSudoku che la testa."
Dato che chiede un solo metodo, io ho risolto così (non ho ancora scritto il codice che testa i singoli quadrati 3x3 ma solo quelli che testano le righe e le colonne):
codice:
class Sudoku{
public static boolean verificaSchema(int[][] schema){
//verifica righe
int i=0; //indice riga
int j=0; //indice colonna
int k=0;
boolean diversi = true;
while(i<9 && diversi){
while(j<9 && diversi){
while(k>=j+1 && k<=9 && diversi){
if(schema[i][j]==schema[i][k])
diversi=false;
k++;
}
j++;
}
i++;
}
//verifica colonne
boolean diversi2=true;
if(diversi==true){
j=0;
k=0;
while(j<9 && diversi2){
while(i<9 && diversi2){
while(k>=i+1 && k<=9 && diversi2){
if(schema[i][j]==schema[k][j])
diversi2=false;
k++;
}
i++;
}
j++;
}
}
boolean corretto = diversi && diversi2;
return corretto;
}
}
Ho scritto anche la classe ProvaSudoku, e facendo una prova inserendo tutte le righe pari a 1,2,3,4,5,6,7,8,9 mi dice che la griglia è corretta quando invece è sbagliata!!! Non riesco a capire dove sta l'errore fin qui.