Résolveur de sudoku

Description

Ce code permet de résoudre un Sudoku, (si vous ne savez pas ce que c'est, tapez "Sudoku" sur google, vous trouverez facilement...).

La fenêtre présente 9*9 textbox représentant la grille sudoku, puis vous suivez la démarche suivante :

1) Vous entrez les chiffres connus
2) Cliquez sur "Résoudre sans supposition"

-Trois cas de figure :
a) Il ne trouve rien -> jmp 3)
b) Il ne trouve pas tout (ça ne sert à rien de cliquer plusieurs fois) -> jmp 3)
c) Il trouve tout -> jmp 6)

3) Cliquez sur "Résoudre avec une supposition"

-Trois cas de figure :
a) Il trouve rien -> jmp 4)
b) Il un chiffre (celui qui permet de trouver le plus de nouvelles solutions en une fois) -> jmp 2)

4) La grille a trop peu d'informations, il vous faut ajouter manuellement un nombre, attention que ce genre de grille comporte alors plusieurs solutions et ne répond donc pas à une règle de base des sudokus qui est de n'en avoir qu'une. Néanmoins, beaucoup de grille 'difficiles' sur internet en comportent plusieurs...

5) jmp 2)

6) C'est gagné !

Vous remarquerez que les chiffres entré manuellements sont noirs, tandis que ceux trouvés par le programme sont rouges. Cela signifie qu'ils ont le statut de proposition. Vous pouvez les refuser ou les accepter avec les 2 boutons prévus à cet effet. Il est conseillé de s'en servir vu que les propositions avancée par le point 3 sont les plus fructueuses, mais pas spécialement les bonnes, elles peuvent vous mener dans une impasse. Dans ce cas, à vous de refusez les propositions et de faire un supposition manuelle (oui désolé, c'est pas encore parfait...)

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...

Source / Exemple :


'Tout dans le zip

Conclusion :


Je suis désolé, je code mal, je fais pas de commentaires et les noms de mes variables ne sont pas des plus judicieux. C'est la première (peut-être deuxième mais la première était pas sérieuse) fois que je met un code en ligne et je n'ai jamais pensé que d'autre aurait à lire mon code en programmant. Si ce programme suscite de l'intérêt, je restructurerai un petit peu tout ça avec plaisir, mais comme c'est vraiment pas le côté que j'aime en prog et que je suis flemard...
Au passage, quelqu'un sait comment je peux avoir les évènements de mes textbox ? Parce que si je mets WithEvents, je peux pas faire un tableau et moi il m'en faut un.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.