Bonjour, j'espère ne pas me tromper en postant ça ici ^^
Voilà, j'essaye de créer un générateur de sudoku, ce qui commence donc
par générer une grille. C'est là mon problème. Pour ce qui ne
connaitraient pas les règles, les voici :
- chaque chiffre ne doit être présent qu'une fois dans chaque colonne
- chaque chiffre ne doit être présent qu'une fois dans chaque ligne
- chaque chiffre ne doit être présent qu'une fois dans chaque carré de 3x3
Voilà mon code pour le moment :
IMAGE CLÉ 1
stop();
// sous-grilles
grid_0 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_0[i+3*j] = 0;
}
}
grid_1 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_1[i+3*j] = 0;
}
}
grid_2 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_2[i+3*j] = 0;
}
}
grid_3 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_3[i+3*j] = 0;
}
}
grid_4 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_4[i+3*j] = 0;
}
}
grid_5 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_5[i+3*j] = 0;
}
}
grid_6 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_6[i+3*j] = 0;
}
}
grid_7 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_7[i+3*j] = 0;
}
}
grid_8 = new Array();
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
grid_8[i+3*j] = 0;
}
}
// grille complète
grid = [grid_0, grid_1, grid_2, grid_3, grid_4, grid_5, grid_6, grid_7, grid_8];
// entier naturel aléatoire n
function form(min, max) {
var rand = Math.floor(Math.random()*(max-min+1))+min;
return rand;
}
// remplissage
var step = -1;
var arr = 0;
function fill() {
if (step<=7) {
step += 1;
} else {
step = -1;
arr += 1;
}
while (n == grid[arr][0] || n == grid[arr][1] || n == grid[arr][2] || n == grid[arr][3] || n == grid[arr][4] || n == grid[arr][5] || n == grid[arr][6] || n == grid[arr][7] || n == grid[arr][8]) {
n = form(1, 9);
<< ici, il n'a qu'une condition, dès que j'ajoute les autres, le jeu plante}
grid[arr][step] = n;
}
IMAGE CLÉ 2
while (arr<=8) {
fill();
}
Le problème est que, comme je l'ai dit, dès que j'essaye de rajouter des conditions dans ma boucle while, le jeu plante. Je voudrais vraiment réussir à programmer ce sudoku, c'est pour quelqu'un. Si vous pouviez m'aider svp