Sudoku solver

Soyez le premier à donner votre avis sur cette source.

Vue 13 130 fois - Téléchargée 2 621 fois

Description

Voici une classe Sudoku qui permet la création de grille, l'ajout de valeurs et la résolution.
La classe est capable de résoudre n'importe quel type de sudoku, même avec une seule valeur ;) .

La classe a été testée dans une application flash, mais reste utilisable pour n'importe qui.

L'ajout d'information est ce que j'ai pu trouver de plus rapide informatiquement...

Conclusion :


Tout est bien commenté, je ne pense pas qu'il y ait besoin de plus.

Bientôt un générateur de sudoku facile, moyen, difficile et extreme... (à venir)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

AFPA2003
Messages postés
35
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
22 mai 2013
-
Et s'il y a plusieurs solutions :
- la grille est validée quand même
- il n'accepte pas d'autres solutions
exemple :
000057200804000030002030058700006001060079340001000005307400080000300000000705023
ma solution :
139857264854621937672934158723546891568179342491283675317462589245398716984715423

En fait je suis venu ici en cherchant un solveur pour des sudoku multi grilles : kamikaze, banzai, marathon, triathlon, etc.
voir sur http://kelpi.zabro.free.fr/Web/Sudoku/sdk5.htm

Est-il possible d'adapter ce code pour ces autres grilles de sudoku ?

J'ai quelques notions de vb et aucune en flash
cs_goldenboy68
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1 -
...j'ai pas pu m'empêcher, donc en fait mea culpa! Ma lecture n'était pas diagonale, mais elle n'est pas allée plus loin que la méthode à effet de bord!

Bref c'est nickel !

@+
cs_goldenboy68
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1 -
j'ai lu le code en diagonale et j'ai cru que tu cherchais les cases où il n'y avait qu'une possibilité pour y mettre qqch...

Vais la relire tranquillement ce soir!

@+!
kingcobra
Messages postés
316
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
19 septembre 2012
-
salut !

t'as lu le code ?

tout ce que tu décris est déjà fait et en mieux.
Le code résoud absolument toutes les grilles. (meme les vides)
Dans le cas ou une est impossible, c a d que les chiffres sont placés de manière à ne pas pouvoir finir la grille, alors il ne finira pas de la résoudre puisqu'il peut pas.
cs_goldenboy68
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
1 -
S'il y a un cas où le code ne peut pas choisir il faudrait partir dans une autre boucle. Moi je verrais bien un array qui stockerait les possibilités d'une case (laquelle? p-ê une de celles où il y a le plus de possibilités).

ensuite on fait une copie de la grille à l'état où ça bloque
on prend une des possibilités de la retenue
on réactualise les possibilités dans les autres cases
et on refait un "isFinished"

...on boucle sur le nombre de possibilités que contient la case choisie

On pourrait aussi boucler sur le nombre de cases nom remplies encore (dans le cas où avec la case choisie on résoud pas la grille)

Ensuite, si ça suffit pas, ben c'est que la grille est vraiment compliquée! Le plus simple c'est d'abandonner! Sinon il faudrait imbriquer une seconde boucle de secours dans la première...mais j'ose même pas imaginer le foutoir! lol

Maintenant les grilles sont p-ê conçues pour être résolues sans qu'on ait besoin de faire un choix aléatoire dans une case?

@+! Samy

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.