diff --git a/src/Grille.java b/src/Grille.java index 21dfeb2..8250938 100644 --- a/src/Grille.java +++ b/src/Grille.java @@ -18,6 +18,48 @@ public class Grille { } } + public boolean est_valide(int position, int nbr){ + + /* check si le numéro se répète sur la colonne */ + + int colonne = position%9; + int id_test = colonne; + while (id_test != (72+colonne)) { + if ((this.grille[id_test]==nbr) && (id_test != position)) { + return false; + } + id_test += 9; + } + + /* check si le numéro se répète sur la ligne */ + + int ligne = position/9; + id_test = ligne * 9; + + while (id_test != ((ligne +1)*9)) { + if ((this.grille[id_test]==nbr) && (id_test != position)) { + return false; + } + id_test += 1; + } + + /* check si le numéro se répète dans le carré auquel il appartient */ + + int Vcase = ligne/3; // permet de connaître la position du carré sur un axe vertical + int Hcase = colonne/3; // permet de connaître la position du carré sur un axe horizontal + int x,y; + + for (x=0; x<3 ;x++) { + for (y=0; y<3 ;y++) { + id_test = Vcase*27+(y+Hcase*3)+(x*9); + if ((this.grille[id_test]==nbr) && (id_test != position)) { + return false; + } + } + } + return true; + } + public void remplir_case(int position,int nbr){ if ((nbr > 0) && (nbr < 10)){ this.grille[position] = nbr; @@ -26,10 +68,9 @@ public class Grille { } } - public static void main(String[] args){ + /*public static void main(String[] args){ Grille grille = new Grille(); grille.remplir_case(3,59); System.out.println(grille.case_vide(3)); - - } + }*/ }