APPRENDRE À RÉSOUDRE UN SUDOKU

cs_Norpac Messages postés 12 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 21 janvier 2013 - 15 juin 2010 à 15:52
kbalist Messages postés 36 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 6 février 2011 - 6 août 2010 à 09:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51897-apprendre-a-resoudre-un-sudoku

kbalist Messages postés 36 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 6 février 2011
6 août 2010 à 09:12
à DX90 :
merci pour tes remarques...

c'est vrai que je n'ai pas prévu que l'on vide la grille pendant la recherche ! la logique serait de faire ESC ou stop (prévu sur les recherches longues ou sur la "totale") avant de vider la grille. on peut aussi dans le programme de vidage de la grille commencer par mettre à TRUE le flag ESC_flag qui est testé avant d'essayer une autre méthode lors de la recherche.

pour la saisie des valeurs, je n'ai pas non plus testé la cohérence. cela serait faisable au moment ou il gère le nombre saisi (par exemple effacer la valeur si elle figure déjà dans la ligne-colonne-région).
ceci dit, ça m'étonnerais qu'il continue de chercher sans s'arrêter...il produira juste des cases vides sans aucun candidat possible.
si tu trouves une grille (même incorrecte dès le départ) pour laquelle le programme tourne indéfiniment, je suis intéressé !
DX90 Messages postés 40 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 14 septembre 2018 1
11 juil. 2010 à 19:13
C'est bon j'ai compris pour le système de résolution.
DX90 Messages postés 40 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 14 septembre 2018 1
11 juil. 2010 à 18:55
Bonjour,

Ton code est vraiment excellent, mais il reste notamment quelque oublie.
Quand tu vide la grille et que ca cherche, ben il continue en supprimant, certaines partie, tu devrai y ajouter la fonction: ButtonViderGrille.Enabled = False
Et ButtonViderGrille.Enabled = True quand la solution est trouvé.
Et il reste le gros bug, par contre je sait pas comment le corriger, si tu met 2 nombres sur la même ligne, même colonne, ou même carré, ben il ne trouve pas le solution, il continue mais ne finit jamais.
Après d'où l'utilité de faire exprès il n'y en a pas, mais bon, c'est juste une suggestion.
Et j'ai pas trop compris les résolutions pour voir comment c'est fait mais bon pas grave.

DX90
cs_Norpac Messages postés 12 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 21 janvier 2013
15 juin 2010 à 15:52
Bonjour,

Logiciel très soigné qui sort nettement des sentiers battus.

Pour une résolution rapide, en une fraction de seconde, voir le lien : http://cgi.cse.unsw.edu.au/~xche635/dlx_sodoku/.
C'est écrit en C++, mais doit pouvoir se transcrire en VB.NET.
La méthode DLX (Dancing Links), en plus d'être rapide, permet de détecter des sudokus insolubles ou possédant plusieurs solutions.

En tout cas merci pour ce code qui m'a permis de passer quelques bons moments.

Norpac.
Rejoignez-nous