<quote>Vous vous demandez peut-être pourquoi j'ai pas fais un deuxième niveau de supposition ? Ben tout simplement parce que j'ai essayé et que j'ai mis 1h30 (ben oui, il faut multiplier le temps par 81 à chaque fois...) pour trouver la grille en entier alors que j'avais mis 14 secondes pour la trouver en faisant une supposition manuelle... </quote>
Cher julien,
Je doutes pas que ton programme a surrement des interets dans moultes domaine, mais en tout cas essaye de le perfectionner du point de vue algorithmique au lieu de te contenter d'une solution de bourrinage ultime ;)
Un bon algorithme de resolution de sudoku est instantané quelquesoit la grille.
Quelques indices : pour chaque case, calculer les coups possible et ceux interdits. Quand il n'y a qu'un seul coup possible, valider la case. De même quand dans un groupement (ligne, colone, carré de 3x3) il n'y a qu'une seule case contenant un chiffre particulier de possible (meme si d'autres chiffres sont possibles pour cette case), valider le chiffre en question.
Enfin utiliser un algo recursif ou de backtracking pour trouver la solution si les methodes precedentes ne suffisent pas, tout en continuant d'appliquer les deux regles de base pour chaques itérations (elles suffisent pour bien des grilles faciles, mais pour certaines difficiles un parcours des possibilités restantes est obligatoire).
cs_babboss
Messages postés121Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention29 novembre 2006 16 févr. 2006 à 15:04
Pas Mal* je voulai dire :/
cs_babboss
Messages postés121Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention29 novembre 2006 16 févr. 2006 à 15:03
Pas ce resolver de sudoku ;)
Si tu ve avoir des evenement avec un tableau de TextBox il faut utiliser AddHandlers:
AddHandlers TaTextBox.Evenement, AddressOf SubAAppelerPourLEvenement
Dans l'evenement du recupere la TextBox conserné avec le parametre sender
Voila, bonne continuation ;)
cs_guyvdv
Messages postés101Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention19 mai 20111 12 févr. 2006 à 16:58
C'est quandmem du .net , j'ai arriver a copier-coller des partis de tes fichiers dans un project neuf en vb.net 2003
Maintenant il me reste que etudier hihihi
A+
Guy van der velden
cs_guyvdv
Messages postés101Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention19 mai 20111 12 févr. 2006 à 16:20
Cher Julien, je crois qu'il manque .vbp quand c'est ecris en vb6
Je veux quandmeme essayer ton programme, mais je ne peut pas le charger
D'habitude je travaille avec vb.net 2003, et je vai profiter de l'offre vb.net 2005 express
Mais comme je crois que c'est du vb6 merci de mettre sur vbfrance le *.vbp
La solution de Renfield ne fonctionne pas chez moi
A+
Guy van der Velden
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 25 janv. 2006 à 18:14
Ah heu oui, une petite faute de frappe mentale, merci.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 janv. 2006 à 17:12
lances le fichier .vbproj
"Vous remarquerez que les chiffres entré manuellements sont rouges, tandis que ceux trouvés par le programme sont rouges."
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 25 janv. 2006 à 14:15
Heu je m'y retrouve pas dans tout les fichiers du zip, si quelqu'un sait me dire lesquels sont vraiment essentiels, c'est sympa...
27 févr. 2006 à 23:26
Cher julien,
Je doutes pas que ton programme a surrement des interets dans moultes domaine, mais en tout cas essaye de le perfectionner du point de vue algorithmique au lieu de te contenter d'une solution de bourrinage ultime ;)
Un bon algorithme de resolution de sudoku est instantané quelquesoit la grille.
Quelques indices : pour chaque case, calculer les coups possible et ceux interdits. Quand il n'y a qu'un seul coup possible, valider la case. De même quand dans un groupement (ligne, colone, carré de 3x3) il n'y a qu'une seule case contenant un chiffre particulier de possible (meme si d'autres chiffres sont possibles pour cette case), valider le chiffre en question.
Enfin utiliser un algo recursif ou de backtracking pour trouver la solution si les methodes precedentes ne suffisent pas, tout en continuant d'appliquer les deux regles de base pour chaques itérations (elles suffisent pour bien des grilles faciles, mais pour certaines difficiles un parcours des possibilités restantes est obligatoire).
16 févr. 2006 à 15:04
16 févr. 2006 à 15:03
Si tu ve avoir des evenement avec un tableau de TextBox il faut utiliser AddHandlers:
AddHandlers TaTextBox.Evenement, AddressOf SubAAppelerPourLEvenement
Dans l'evenement du recupere la TextBox conserné avec le parametre sender
Voila, bonne continuation ;)
12 févr. 2006 à 16:58
Maintenant il me reste que etudier hihihi
A+
Guy van der velden
12 févr. 2006 à 16:20
Je veux quandmeme essayer ton programme, mais je ne peut pas le charger
D'habitude je travaille avec vb.net 2003, et je vai profiter de l'offre vb.net 2005 express
Mais comme je crois que c'est du vb6 merci de mettre sur vbfrance le *.vbp
La solution de Renfield ne fonctionne pas chez moi
A+
Guy van der Velden
25 janv. 2006 à 18:14
25 janv. 2006 à 17:12
"Vous remarquerez que les chiffres entré manuellements sont rouges, tandis que ceux trouvés par le programme sont rouges."
25 janv. 2006 à 14:15