Solveur de Sudoku

L'approche algorithmique de résolution diffère de l'approche humaine, en ce sens qu'elle essaye de dégager un nombre minimum de règles, relativement simples à calculer, mais pas forcément simples à exploiter visuellement par un être humain.
En l'occurrence l'approche algorithmique que nous avons choisie utilise systématiquement les possibilités restantes dans une case. Cette approche est difficile pour un être humain car elle surcharge la grille et nous verrons qu'il cherche le plus possible à l'éviter.

Nous avons retenu la méthode générale suivante :
Les règles de base
Trois règles couvrent le champ des règles que nous considèront comme des règles de base, et sont exécutées par le bouton "Règles de base" : La règle d'interactions entre région n'est utilisée que quand les 2 précédentes ne donnent plus de résultats.

Il existe une règle duale de la règle des candidats multiples, qui est la règle des candidats multiples cachés (hidden subset). Elle consiste à trouver dans une région, n cases non encore trouvées (mais ne constituant pas la totalité des cases non encore trouvées de cette région), ces cases pouvant contenir plus de n chiffres possibles, mais en contenant exactement n qui ne sont pas dans les autres cases non encore trouvées de cette région. On peut alors supprimer dans les n cases en question les chiffres différents des n chiffres en question. Ces 2 règles donnant les mêmes résultats, nous avons utilisé la plus facile à programmer.

On peut maintenant faire le lien avec l'approche de l'être humain :
Les règles avancées
Dans l'approche humaine, les règles avancées imposent de marquer les possibilittés.