mise en fonction du sudoku côté machine

This commit is contained in:
Marco ORFAO 2024-04-09 14:11:40 +02:00
parent 03a4e3c601
commit e0b6bc7de8

View File

@ -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){ public void remplir_case(int position,int nbr){
if ((nbr > 0) && (nbr < 10)){ if ((nbr > 0) && (nbr < 10)){
this.grille[position] = nbr; 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 grille = new Grille();
grille.remplir_case(3,59); grille.remplir_case(3,59);
System.out.println(grille.case_vide(3)); System.out.println(grille.case_vide(3));
}*/
}
} }