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):
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.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; } }![]()

Rispondi quotando