[Ex] Résolveur de Sudoku

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#21

Message 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
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#22

Message 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).
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#23

Message 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?
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#24

Message 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 ^^
Modifié en dernier par ZDS le mar. 27 sept. 2011 22:27, modifié 1 fois.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
guitarist
Niveau 6
Niveau 6
Messages : 235
Enregistré le : mar. 02 déc. 2008 16:59
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#25

Message par guitarist »

Apres tout c'est juste une idée hein ? :p
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#26

Message par Tlem »

Éventuellement, voici une autre suggestion : http://www.gizmodo.fr/2011/09/29/commen ... ctets.html
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
novembrezoulou
Niveau 4
Niveau 4
Messages : 53
Enregistré le : dim. 06 nov. 2011 14:06
Localisation : Joinville le pont
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#27

Message 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
L'aviation est un moyen de transport rapide pour gens pas pressés.
Plus on va moins vite, moins le temps est plus court...
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#28

Message par bloodwolff »

Beau travail, personnellement j'aurais bien aimé voir une couleur différente entre les nombres de départ et ceux ajouter
Compte skype : bloodwolfff
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#29

Message par Tlem »

Bonsoir.
L'utilisation d'un contrôle EDIT sera bien plus adapté que plusieurs InputBox. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#30

Message 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 !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
novembrezoulou
Niveau 4
Niveau 4
Messages : 53
Enregistré le : dim. 06 nov. 2011 14:06
Localisation : Joinville le pont
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#31

Message 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
Modifié en dernier par novembrezoulou le sam. 21 déc. 2013 21:35, modifié 1 fois.
L'aviation est un moyen de transport rapide pour gens pas pressés.
Plus on va moins vite, moins le temps est plus court...
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Résolveur de Sudoku

#32

Message par pierrotm777 »

Trés beau travail :D
Répondre