Aide à la résolution de grilles de Sudoku (Claude Monteil - mars 2006, avril 2018)

Fondamental

On ne présente plus ce jeu qui connaît depuis 2005 une popularité croissante. L'objectif ici n'est pas de proposer un programme effectuant la résolution automatique d'une grille (... ce qui ferait perdre l'intérêt du jeu) mais de favoriser son apprentissage en visualisant de manière explicite la mise en œuvre de certaines règles de résolution, et de montrer au passage comment les fonctionnalités d'Excel permettent de faciliter cette visualisation.

Deux versions successives sont mises à disposition et incluent les notes explicatives permettant de les développer :

  • Le classeur Sudoku.xlsx [xls] (38 ko) montre comment l'utilisation de mises en forme conditionnelles associées à des formules à référence relative et à la fonction DECALER permet, sans aucune programmation en VBA, de visualiser pour chaque chiffre l'ensemble des cases possibles par élimination des lignes, colonnes et blocs déjà occupés par ce chiffre ; cette version permet aussi d'orienter la réflexion en affichant le nombre de cases restant à remplir pour chaque ligne, colonne et bloc (et pour chaque chiffre le nombre d'occurrences restant à placer) en surlignant les valeurs minimales, de manière à orienter vers les éléments qui présentent potentiellement moins de combinaisons à tester ; deux contrôles (un compteur et une case à cocher) permettent très simplement de changer de chiffre à tester et de désactiver l'aide ; quelques grilles exemples sont incluses avec gestion d'un choix aléatoire reposant sur l'utilisation de la fonction ALEA, et l'usage du mode plan d'Excel pour le masquage/démasquage des solutions

  • Le classeur SudokuVBA.xlsm [xlsm] (60 ko) inclut la version précédente et ajoute la gestion d'une grille auxiliaire affichant les chiffres possibles pour chaque case, ligne, colonne et bloc, permettant ainsi de mettre en évidence des règles de résolution supplémentaires ; ceci est réalisé par utilisation de quelques procédures écrites en VBA, dont l'exécution est associée à des boutons ; la grille auxiliaire met en évidence les cases pour lesquelles il n'y a qu'une seule possibilité, et de manière moins marquée celles ayant 2 possibilités, en utilisant des mises en forme conditionnelles et la formule NBCAR de la feuille de calcul ; elle indique aussi les cases dans lesquelles il s'avère impossible d'ajouter un chiffre (croix sur fond rouge), mettant en évidence une impasse ; en outre, un bouton "Proposer un chiffre", démasqué uniquement après le remplissage de la grille auxiliaire, permet d'afficher une proposition de chiffre présélectionné dans la grille de jeu avec la règle ayant conduit à cette proposition, ceci dans un but d'aide à l'apprentissage du jeu ; lors de toute insertion d'un nouveau chiffre dans la grille de jeu, toutes les aides se désactivent automatiquement afin de favoriser la réflexion ; un autre bouton permet de générer une nouvelle grille de jeu choisie aléatoirement parmi un ensemble de grilles prédéfinies ; on peut également mémoriser la grille de jeu à un instant donné et la restaurer ultérieurement dans le même état si les chiffres rajoutés entre temps ont conduit à une impasse.