L'idée générale est la suivante:
J'utilise deux procédures de résolutions: "elimination" et "recherche de position unique".
L'"élimination" va parcourir toutes les cases non encore déterminées et pour chacune de ces cases, supprimer les valeurs qui ne peuvent plus y etre (tout simplement en supprimant les valeurs qui sont déjà présentes dans la ligne la colonne et le carré de la case considérée.)
La "recherche de position unique" va regarder s'il y a des chiffre qui n'ont plus qu'une seule possibilité de placement dans une ligne, une colonne ou un carré; et dans l'affirmative, elle y place cette valeur.
Le programme lance ces deux procédure tant qu'elle modifie le Sudoku et donc tant qu'elle avancent vers la solution.
Lorsque plus rien n'est modifié par ces procédure et que le Sudoku n'est pas encore résolu, on cherche la première case qui n'est pas encore déterminée, et on fait un test d'hypothèse sur celle-ci. et on tente de résoudre récursivement le nouveau problème (éventuellement impossible).