mise en fonction du sudoku côté machine
This commit is contained in:
parent
03a4e3c601
commit
e0b6bc7de8
@ -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));
|
||||
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user