Aide à la résolution d'une grille de Sudoku

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.

Les trois méthodes, ou plutôt deux méthodes et un outil supplémentaire

Les boutons et leur rôle

Exemple d'utilisation

Un exemple concret est montré sur la page Sudc.

Version 2019

Cette version de décembre 2019 n'est pas tout à fait la version originale de 2017.

Il faut considérer que cette page php joue le double rôle de formulaire et de réponse au formulaire. A chaque action d'une commande, la page est effacée puis recalculée avec les nouvelles données. Au cours de cette opération toutes les variables sont perdues sauf celles qui correspondent aux choix faits dans le formulaire, qui transitent par une super globale "$_POST". Si on a besoin de garder d'autres variables on doit les introduire dans une autre super globale "$_SESSION". Toutes les variables introduites dans $_SESSION ont la durée de vie de la session.

Le développement de 2017 a été réalisé sur un site "Hostinger", sans problème. Aujourd'hui Hostinger est abandonné (trop cher). On se contente de l'hébergement gratuit de Free. Mais voilà, Free n'accepte pas les super globales de SESSION.

Donc la version de 2019 se passe de "$_SESSION". Elle utilise tout simplement "$_POST" en forçant la prise en compte à l'intérieur des deux balises (ouvrante et fermante) de <form> (formulaire), par un input de type "hidden".