Bonjour, je vais aller en DUT informatique et j'ai donc voulu apprendre java et j'ai voulu faire un petit projet. Je voulais faire un résolveur de sudoku. Néanmoins lors de la validation du sudoku il y a une erreur. Une variable booléenne que j'ai mis à true et qui ne changé que si elle respecte une condition mais la variable change sans respecter la condition. J'aimerais avoir votre avis. Le lien du projet est ici. Voici l'extrait problématique:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | for (int[] i:sudoku) { //System.out.println("resultat : " + Section_sudoku.validation(i)); if (Section_sudoku.validation(i)==true); { verif2=false; System.out.println("a"); break boucle_for; } } System.out.println("etape 2"); for(int i=0;i<Case_sudoku.max;i++) { System.out.println("fg"); if(!Section_sudoku.validation(sudoku[i][0],sudoku[i][1],sudoku[i][2],sudoku[i][3],sudoku[i][4],sudoku[i][5],sudoku[i][6],sudoku[i][7],sudoku[i][8])) { verif2=false; System.out.print("b"); break boucle_for; } } for(int i=0;i<Case_sudoku.max;i=i+3) { for(int j=0;j<Case_sudoku.max;j=j+3) { if(!Section_sudoku.validation(sudoku[i][j],sudoku[i][j+1],sudoku[i][j+2],sudoku[i+1][j],sudoku[i+1][j+1],sudoku[i+1][j+2],sudoku[i+2][j],sudoku[i+2][j+1],sudoku[i+2][j+2])) { verif2=false; System.out.print("c"); break boucle_for; } } } } if (!verif2) { System.out.println("Erreur: Le sudoku n'est pas conforme"); } |
la fonction correspondante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | static boolean validation(int ... section) { boolean validite=true; boucle:for(int i=0;i<Case_sudoku.max+1;i++) { for(int j=i+1;j<Case_sudoku.max;j++) { //System.out.println("boucle"); System.out.println("validite: " + validite); System.out.println(section[i] + " " + section[j]); if (section[i]==section[j] && section[i]!=-1) { System.out.println("bla"); validite=false; System.out.println("validite2: " + validite); break boucle; } } } System.out.println("validite3: " + validite); return validite; } |
ainsi que la sortie console:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | validite: true 4 8 validite: true 4 -1 validite: true 4 2 validite: true 4 -1 validite: true 4 -1 validite: true 4 3 validite: true 4 7 validite: true 4 -1 validite: true 8 -1 validite: true 8 2 validite: true 8 -1 validite: true 8 -1 validite: true 8 3 validite: true 8 7 validite: true 8 -1 validite: true -1 2 validite: true -1 -1 validite: true -1 -1 validite: true -1 3 validite: true -1 7 validite: true -1 -1 validite: true 2 -1 validite: true 2 -1 validite: true 2 3 validite: true 2 7 validite: true 2 -1 validite: true -1 -1 validite: true -1 3 validite: true -1 7 validite: true -1 -1 validite: true -1 3 validite: true -1 7 validite: true -1 -1 validite: true 3 7 validite: true 3 -1 validite: true 7 -1 validite3: true a Erreur: Le sudoku n'est pas conforme ------------------Exception in thread "main" java.lang.NullPointerException at sudoku.Sudoku.affiche_sudoku(Sudoku.java:212) at PremProg.main(PremProg.java:16) |
Merci d'avance
+0
-0