Introduction
Il paraît qu'il existe des tas de logiciels d'aide à la résolution des grilles de Sudoku.
Ce travail a été réalisé pendant le cours sur le php à l'UIAD, à la fin de l'année scolaire, en mars avril 2017. Le défi ici, a été de voir s'il est possible de mettre en place une interactivité suffisante entre l'opérateur et la machine pour résoudre une grille de Sudoku.
Ce sytème ne résout pas les grilles. C'est juste une aide qui met en relief par des jeux de couleurs, les éléments à examiner. Au final, c'est l'utilisateur lui-même qui prend la décision d'introduire tel chiffre dans telle cellule de la grille.
On ne présente ici que la version g, la version finale obtenue après plusieurs améliorations de présentation, plus ou moins suggérées par les participants au cours et d'autres utilisateurs.
Utilisation
Les composants de la page
On trouve dans cette page deux grands tableaux : la grille de travail et une zone de brouillon ; puis une zone de choix d'un chiffre, puis des boutons. On n'écrit pas dans les tableaux. Il n'y a que deux zones d'écriture : la zone de texte blanche au-dessus du brouillon et une deuxième zone de texte pour choisir une grille.
- La grille de travail avec ses 81 cellules. On peut connaître le n° d'une cellule par le survol immobile de la souris.
- La zone de brouillon ne sert qu'à garder la trace des cellules renseignées après une hypothèse. En effet il arrive quelquefois que plus aucune cellule n'a une solution unique. Dans ce cas on est obligé d'essayer une des deux solutions possibles pour une cellule donnée. S'il s'avère que la solution essayée aboutit à une impasse, on doit essayer l'autre solution après avoir effacé tout ce qui a été rempli au cours de l'hypothèse fausse.
- La zone des chiffres qui permet de préciser un choix est située en bas et à gauche.
Les trois méthodes, ou plutôt deux méthodes et un outil supplémentaire
- La méthode du chiffre. On se focalise sur un chiffre et on regarde la répartition de ce chiffre dans la grille. Il peut arriver que le chiffre choisi n'a qu'une position possible pour une ligne donnée, ou pour une colonne donnée ou pour un petit carré donné.
- La méthode de la cellule. On se focalise sur une cellule et suivant le contenu de la ligne, de la colonne et du petit carré de cette cellule, il peut arriver qu'il ne reste plus qu'un chiffre possible pour cette cellule choisie.
- Outil de comptage des solutions dans les cellules. L'outil dit simplement s'il y a une ou deux solutions dans chacune des cellules vides.
Les boutons et leur rôle
- Les boutons appelés "Autres commandes" sont assez explicites.
- Vider la grille. On vide complètement la grille de travail.
- Enregistrer la grille. C'est une possibilité d'enregistrer la grille en cours de résolution, afin de poursuivre plus tard cette résolution.
- Restaurer la grille pour afficher la grille qui a été enregistrée.
- Choisir une grille. Il y a une bibliothèque de 28 grilles. On peut donc choisir un jeu.
- Le bouton "Chiffre", au-dessous de la grille de travail. C'est celui qui déclenche la méthode Chiffre après avoir choisi (cliqué sur) un chiffre.
- Les boutons au-dessus de la grille de travail
- Le bouton "●/●●" est celui qui déclenche le calcul du nombre de solutions. Le résultat est sous la forme :
- Un point "●" dans chacune des cellules pour lesquelles il n'y a qu'une solution unique.
- Deux points "●●" dans chacune des cellules pour lesquelles il y a deux solutions.
- Rien, cellule vide, lorsque le nombre de solutions est supérieur à deux.
- Le bouton "Cellule" est celui qui déclenche la méthode cellule, après avoir choisi (cliqué sur) une cellule.
- Le bouton plus "+" permet d'ajouter un chiffre dans une cellule, le chiffre qui a été sélectionné dans la cellule qui a été sélectionnée au préalable.
- Le bouton moins "-" permet de vider la cellule qui a été sélectionnée au préalable.
- Au-dessus de la zone de brouillon, il y a,
- Une zone de texte. C'est là qu'on écrit le message qu'on veut introduite dans une des cellules de la zone brouillon.
- Un bouton "OK" qui déclenche l'écriture du message dans la celulle correspondant à la cellule qui est sélectionnée dans la grille de travail.
- Un bouton "EFF" qui efface complètement tout le contenu de la zone de brouillon. Si on veut n'effacer qu'une cellule, il faut que la zone de texte soit vide, il faut sélectionner la cellule correspondante dans la zone de travail, puis cliquer sur "OK".
Exemple d'utilisation
Un exemple concret est montré sur la page Sudc.