3 pièce(s) jointe(s)
Résolution SuDoKu récursif BackTrack
Bonjour à tous,
Pour ceux qui aiment bien se creuser la tête sur de l'algorithmie... :koi: J'ai écrit un code permettant de résoude une grille de sudoku récursivement. J'ai simplement adapté l'exellente méthode utilisant le backtracking, écrite en C par Bernard Helmstetter :hola: (http://c.developpez.com/sources/?pag...HME_sudoku_mrv). Tout semble correctement écrit, sauf qu'à l'exécution, mon programme se contente, dans le meilleur des cas, de ne remplir que quelques cases. J'ai beau vérifier le code dans tous les sens, je ne trouve pas d'erreur. :traine:
Alors je poste le source ci-dessous, au cas ou une âme charitable aurait le temps et la patience d'étudier ça. Je précise que je travaille sous Delphi 6, et que le fichier Unit1.dfm correspondant au code Pascal est composé de:
- sgrGrid: un TStringGrid de 9 par 9 avec aucune ligne ou colonne figée
- btnSolve: un TBitBtn qui exécute la procédure btnSolveClick sur l'évènement OnClick
- btnEmpty: un TBitBtn qui exécute la procédure btnEmptyClick sur l'évènement OnClick
- lblAdvance: un TLabel pas indispensable, qui affiche à chaque nouvel appel à BackTrack, le nombre d'appels récursifs.
:help: