Bonjour,
J'essaye de faire un générateur de Sudoku en JAVA. Lorsque j'inscris des nombres dans la grille, ces derniers ne s'affichent pas. Voici la partie de mon code avec laquelle il semble y avoir un problème. Est-ce que quelqu'un pourrait m'aider? Si vous avez besoin du reste du code n'hésitez pas à me le demander.
Merci à l'avance.
Code:/** * Verifie si le nombre a ajouter existe deja dans la ligne * * @param grille Grille contenant les nombre inscrits dans le Sudoku * @param ligne Numero de ligne que l'on doit verifier * @param valeur Valeur que l'on veut ajouter * @return true si la valeur existe dans la ligne, false sinon */ public static boolean estDansLigne(int[][] grille, int ligne, int valeur) { boolean trouve = false; // TODO: Verifier si le nombre a ajouter existe deja dans la ligne // TODO: Tests unitaires for (int i = 0; i < grille.length; i++) { if (grille[ligne][i] == valeur) { trouve = true; break; } else { trouve = false; } } return trouve; } /** * Verifie si le nombre a ajouter existe deja dans la colonne * * @param grille Grille contenant les nombre inscrits dans le Sudoku * @param colonne Numero de colonne que l'on doit verifier * @param valeur Valeur que l'on veut ajouter * @return true si la valeur existe dans la colonne, false sinon */ public static boolean estDansColonne(int[][] grille, int colonne, int valeur) { boolean trouve = false; // TODO: Verifier si le nombre a ajouter existe deja dans la colonne // TODO: Tests unitaires for (int i = 0; i < grille[0].length; i++) { if (grille[i][colonne] == valeur) { trouve = true; break; } else { trouve = false; } } return trouve; } /** * Verifie se le nombre se retrouve dans un secteur de n*n de la grille NOTE: La * position recue ne correspond pas necessairement a un coin du secteur * * @param grille Grille contenant les nombre inscrits dans le Sudoku * @param ligne Ligne sur laquelle on veut ajouter le nombre * @param colonne Colonne dans laquelle on veut ajouter le nombre * @param valeur Valeur que l'on veut ajouter * @return true si la valeur existe dans le secteur, false sinon */ public static boolean estDansSecteur(int[][] grille, int ligne, int colonne, int valeur) { boolean trouve = false; // TODO: Verifier si le nombre existe deja dans le secteur // Suggestion, Identifier un coin du secteur avant de faire les boucles // pour la recherche // TODO: Tests unitaires for (int i = 0, n = grille.length; i < n; i++) { if (grille[ligne][i] == valeur || grille[i][colonne] == valeur) { trouve = true; // a value already exists in the field break; } else { trouve = false; } } // the value is not found in the given line and column return trouve; } /** * Permet de rendre permanent les valeurs affectees jusqu'a present dans la * grille Pour ce faire, cette fonction met a true les cases correspondantes * dans grilleInfo[FIX_IDX] * * @param grille Grille contenant les nombre inscrits dans le Sudoku * @param grilleInfo Informations concernant la case correspondante de la grille */ public static void fixeNumero(int[][] grille, boolean[][][] grilleInfo, int valeur) { // TODO: Inscrire true dans grilleInfo[FIX_IDX] pour chaque case qui // contient un nombre. // TODO: Tests unitaires for (int i = 0; i < grille.length; i++) { for (int j = 0; j < grille[i].length; j++) { if (grille[i][j] == valeur) { grilleInfo[FIX_IDX][i][j] = true; } else { grilleInfo[FIX_IDX][i][j] = false; } } } } /** * Permet de mettre a false toutes les cases d grilleInfo[index] afin de * desactiver les selections ou les nombres fixes * * @param grilleInfo Informations concernant la case correspondante de la grille * @param index Index de la grille a nettoyer dans grilleInfo */ public static void nettoieGrille(boolean[][][] grilleInfo, int index, int valeur, int[][] grille) { // TODO: Desactiver toutes les cases (false) dans grilleInfo[index] // TODO: Tests unitaires for (int i = 0; i < grille.length; i++) { for (int j = 0; j < grille[0].length; j++) { if (grille[i][j] == valeur) { grilleInfo[index][i][j] = false; } } } } }
-----