Page 2 sur 2

Re: [Ex] Résolveur de Sudoku

Posté : mar. 27 sept. 2011 13:07
par guitarist
Niark niark niark !
Si tu lance une grille vide ça plante :

Code : Tout sélectionner

==> Subscript used with non-Array variable.:
If StringRegExp($grille[$i][$j]&"", "^("&joinArray($SUDOKU_SYMBOLES,"|",True)&")$") Then
If StringRegExp($grille^ ERROR
On a les meme problemes que moi? :D

Re: [Ex] Résolveur de Sudoku

Posté : mar. 27 sept. 2011 15:50
par ZDS
Exact, ça avait été décortiqué de ton coté, mais pas corrigé du mien ^^
Nouvelle version avec correction pour de bon cette fois, et l'affichage de l'état de résolution actuel (dans le bas de la fenêtre, mode de résolution et nombre d'hypothèses émises en cours).

Re: [Ex] Résolveur de Sudoku

Posté : mar. 27 sept. 2011 16:57
par guitarist
Humm ton programme est beaucoup trop lent pour les grilles vides.
J'y crois pas mon vieux backtraking faisait une grille vide en 2 secondes meme pas.

Faut que tu puisse mettre en option tes algo type (seule solution, seul colone, ligne, bloc) ça sert à rien si y a trop de possibilité
Du coup j'ai pensé à un classe ment des possibilités, si >=7 pas besoin de voir si y a 1solution exacte et clair, pas dur de prouver que c'est impossible.

T'en pense quoi?

Re: [Ex] Résolveur de Sudoku

Posté : mar. 27 sept. 2011 22:10
par ZDS
Bonsoir,

"Qu'en penses tu?" : J'en pense que là où ton BT met peu de temps à remplir une grille vide (j'entends par là entièrement vide ou avec seulement 4 ou 5 valeurs) en très peu de temps et de donner un résultat plus qu'approximatif et incorrect avec parfois 3 fois la même valeur dans la même ligne/colonne/bloc, mon script quand à lui donne en plus de temps une réponse complète et correcte ou incomplète , mais jamais incorrecte, si en toute logique on respecte trois principes qui coulent de source :
  • La grille à résoudre (donc incomplète) doit être correcte (pas de doublon, pas de case morte aka sans valeur possible, etc...)
  • La grille doit être un minimum remplie (un cas classique de sudoku compte au moins 12 voire 15 valeurs de départ)
  • La grille doit avoir une solution finale correcte
Sans un respect minimum de ce règles, une critique genre "Ça marche pas" ou "Ça met des plombes" n'a (AMHA) aucune valeur !

Voila ce que j'en pense ^^

À bientôt.

Ps: Concernant l'heuristique de classement en fonction de tel ou tel critère, au point d'avancement où en est ce script, ça ne ferait que déplacer et complexifier le problème. En plus d'alourdir l'algo en vue de futures améliorations, tu lui retirerais une faculté de "décision" plus tôt dans la boucle (dans le but de soit-disant gagner du temps en faisant un test couteux supplémentaire juste avant) et tu introduirais de nouveaux facteurs de plantages et de bugs de fonctionnement. Ça me semble totalement futile.

Désolé de ma mesquinerie, mais je fais du code qui tourne et qui résout un problème, moi. Je fais pas du tuning. Les freins, ok. L'ABS, ok. Mais le lecteur MP3 et les jantes alu, t'as qu'à les acheter et les monter toi même! :D
Traduction: prouve-moi que j'ai tort (tu sais bien que j'adore les challenges d'algorithmique), ajoute ta fonction à mon script, crée un petit plan de test avec quelques cas d'usages qu'on trouve dans tous les magazines, et montre moi les différences de performances ^^

EDIT: Je me doute bien que tu proposais une idée à juste titre d'ailleurs. Mais à mon humble avis elle n'a pas du tout d'utilité. J'aimerai (très franchement) que tu me prouves que j'ai tort, et que tu trouves un script plus sûr et plus performant avec ton heuristique, afin de remettre en question ce que j'ai fait : Je me répète, j'aime les challenges ^^

Re: [Ex] Résolveur de Sudoku

Posté : mar. 27 sept. 2011 22:11
par guitarist
Apres tout c'est juste une idée hein ? :p

Re: [Ex] Résolveur de Sudoku

Posté : ven. 30 sept. 2011 22:57
par Tlem
Éventuellement, voici une autre suggestion : http://www.gizmodo.fr/2011/09/29/commen ... ctets.html

Re: [Ex] Résolveur de Sudoku

Posté : ven. 20 déc. 2013 21:56
par novembrezoulou
Bonjour,
J’utilise ce script pour jouer et remplir les grilles et, si je suis en panne, les résoudre.
Après m'être bien amusé avec les grilles 3*3, je me suis risqué aux 4*4 et là...
La fonction "InputBox" est limitée à 255 caractères et tronque le dernier lors de l'import d'une grille (chaîne de 256 caractères...). Du coup, la chaîne est considérée invalide...
J'ai donc rusé en ajoutant une 2è variable $Chaine1 et en la concaténant ensuite...

Code : Tout sélectionner

    #Region Traitement des messages de l'interface
        Case $Bouton_Importer...
            Local $chaine = InputBox("Importer", "Entrez une chaine de "&$taille&" valeurs à importer"&@CRLF&"(0 pour une valeur vide)", "", " M"&$taille)
            Local $chaine1= InputBox("Importer", [b]"Entrez la fin chaine de "[/b]&$taille&" valeurs à importer"&@CRLF&"(0 pour une valeur vide)", "", " M"&$taille)
            $chaine=$chaine & $chaine1
Bien sûr, ça vaut ce que ça vaut !!! mais je peux, ainsi, jouer ce type de grilles...
Et lorsque je serai devenu très très fort et que la résolution des 16*16 me pendra moins de temps que le programme ( :D :D ) je devrai ajouter une troisième variable pour les chaines de 625 caractères !!! Mais ça... c'est pas pour demain :D
Claude_NZ

Re: [Ex] Résolveur de Sudoku

Posté : ven. 20 déc. 2013 22:30
par bloodwolff
Beau travail, personnellement j'aurais bien aimé voir une couleur différente entre les nombres de départ et ceux ajouter

Re: [Ex] Résolveur de Sudoku

Posté : ven. 20 déc. 2013 22:47
par Tlem
Bonsoir.
L'utilisation d'un contrôle EDIT sera bien plus adapté que plusieurs InputBox. ;)

Re: [Ex] Résolveur de Sudoku

Posté : ven. 20 déc. 2013 22:48
par ZDS
Bonjour,

J'y avais déjà pensé il y a longtemps, voici une amélioration avec les deux couleurs (c'est un script qui date d'il y a plus de deux ans ^^). J'ai aussi pris en compte le souci de taille des informations pour l'import des données en 16x16. Cela se passe via le presse papier en premier; et si la chaîne de caractères n'est pas correcte dans le presse papier, alors il demande par la inputBox :
► Afficher le texteversion améliorée
A bientôt !

Re: [Ex] Résolveur de Sudoku

Posté : sam. 21 déc. 2013 00:28
par novembrezoulou
Merci pour cette version "bicolore" qui simplifie bien l'import...
Entre temps, j'ai ajouté un bouton de sauvegarde et un import via un fichier.
d'abord, l'ajout d'un bouton de sauvegarde
► Afficher le texte
Ayant beaucoup cherché où étaient stockées les valeurs, ma solution n'est peut-être pas la meilleure (je suis débutant en programmation...).
Afin de conserver la double coloration, je pense qu'il me faudra sauver la grille d'origine (pour la couleur) et la grille en cours... Je vais donc m'y recoller à l'occasion.
Voici ce que donne mon ajout (dont je sais que les développeurs avertis dirons qu'il est largement perfectible...)
► Afficher le texte
Je n'ai indiqué que la partie sur laquelle je suis intervenu...
Voilà qui me permet de reprendre le lendemain, ou plus tard, une partie engagée.
J'ai surtout galéré pour trouver les valeurs de la grille... Peut-être y a t'il une solution plus simple...
J'aurais pu, aussi, créer une fonction pour la sauvegarde au lieu de la répéter deux fois mais là... je l'ai jouée rapide !
Claude_NZ

Re: [Ex] Résolveur de Sudoku

Posté : sam. 21 déc. 2013 08:56
par pierrotm777
Trés beau travail :D