Bonjour,

Je suis en train de créer un système de Sudoku pour ... pour rien Mais je pense que c'est une bonne expérience c'est pourquoi j'ai entamé son développement. Le script est actuellement quasi fonctionnel, à savoir qu'il n'y a pas de doublon ni dans les lignes ni dans les colonnes. Le problème subsistant étant qu'il arrive souvent que dans le tableau du sudoku complet, quelques valeurs manquent à l'appel ce qui ne devrait pas arriver. Voici le code :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?php
// On déclare le tableau de possibilités et du sudoku
$possibilités = array();
$sudoku = array();
 
// Chaque ligne et chaque colonne peut contenir un nombre de 1 à 9
for($lignes=1;$lignes<10;$lignes++) {
for($colonnes=1;$colonnes<10;$colonnes++) {
$possibilités[$lignes][$colonnes] = '123456789';
}
}
 
// Pour chaque ligne du tableau de sudoku
for($lignes=1;$lignes<10;$lignes++) {
 
// Pour chaque colonne de la ligne du tableau de sudoku
for($colonnes=1;$colonnes<10;$colonnes++) {
 
// On prend dans le tableau de possibilités une valeur au hasard
$valeurCase = substr(str_shuffle($possibilités[$lignes][$colonnes]),0,1);
 
// Pour chaque case de la ligne
for($col=1;$col<10;$col++) {
 
// On enlève des possibilités  la valeur tout juste générée
$possibilités[$lignes][$col] = str_replace($valeurCase,'',$possibilités[$lignes][$col]);
}
 
// Pour chaque ligne de la colonne
for($lig=1;$lig<10;$lig++) {
 
// On enlève des possibilités  la valeur tout juste générée
$possibilités[$lig][$colonnes] = str_replace($valeurCase,'',$possibilités[$lig][$colonnes]);
}
 
// On stocke la valeur dans $sudoku
$sudoku[$lignes][$colonnes] = $valeurCase;
}
}
print_r($sudoku);
?>

Le print_r retourne le tableau, qui se trouve comme vous pouvez le constater, amputé de quelques valeurs (entre 2 et 5). Je n'ai pas réussi a trouver l'origine du problème :/

Comment corriger ce bug ?

Merci d'avance,

Shuny