Solveur Sudoku ?

Rehodi Messages postés 2 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 28 octobre 2007 - 27 oct. 2007 à 23:28
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 - 29 oct. 2007 à 09:43
Boujour, j'ai un projet a rendre Mercredi etle sujet est de créer un solveur de sudoku en python avec un grille donné et non aléatoire, cette grille donné sera de une liste de valeur de 81 termes avec comme valeur 0, les cases vides.
j'ai essayer plusieurs programme cela ne fonctionne pas puis j'ai fait quelque recherche et j'ai trouver une technique qui s'appelle le backtraiking mais je n'arrive pas a l'adapter pour le sudoku. aurier vous une idée ou une solution a me donner car je suis vraiment dans le caca.
Merci d'avance.
A voir également:

3 réponses

aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
28 oct. 2007 à 16:54
On est pas ici pour faire tes devoirs !!! Je veux bien t'expliquer des choses en Python ou t'expliquer un problème, mais certainnement pas te créer un programme tout fait que tu n'aurras plus qu'à présenter et te taper une bonne note !
Merci de ta compréhention ...
______
Aéra

Extrait du réglement de CodeS-SourceS :
9. On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret.
Dirigez-vous directement dans la recherche de sources pour les programmes complets. Inutile de demander du "code tout cuit", vous n'obtiendrez aucune réponse. (http://www.pythonfrance.com/reglement.aspx)
0
Rehodi Messages postés 2 Date d'inscription mardi 29 mai 2007 Statut Membre Dernière intervention 28 octobre 2007
28 oct. 2007 à 18:27
desolé je pense que je me suis mal exprimer , je voulais en fait savoir comment fonctionne le backtraicking pour python.
encore deolé si je me suis mal exprimé
0
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
29 oct. 2007 à 09:43
Ok, je préfer ça  !!!
La technique de backtracking (et non backtraicking) se traduit litéralement par "retour sur piste". En gros, cette technique employé dans certains jeux consiste à mémorisé la situation à un instant t. On joue une case au hasar à un instant t1. Si tous se passe bien, on mémorise la situation à l'instant t1 et on recommence à joué. Si il y a une erreur, on revient à la situation t et on joue d'une autre manière. Pour mettre ça en aplication, il faudrait numéroté toutes les cases de la grille avec des coordonées (par exemple faire un tuple (1,1) pour la première case en haut à gauche). on utilse ensuite un dictionnaire pour mémoriser la situation : si la case (1,1) à le nombre 4 on aura un dico de ce genre : {(1,1),4}. On créé 3 variable :
dico = {(1,1),4}     # Je viens d'en parler
case = (1,2)         # La case choisit pour faire les tests
nb_test = 2          # C'est le nombre que l'on va mettre dans la case

On effectue le test (vérification des régles). Si tout se passe bien, on ajoute la case et sa valeur au dictionnaire, on choisit une autre case avec un autre nombre à tester. Si il y a une incohérence on réédite la variable nb_test avec le nombre supérieur. Si on est déja à 9, on peut estimer qu'il n'y a pas de solution pour cette case ! Mais cette technique à ses limites : au Sudoku, certaines cases n'ont pas de containe au début de la partie. Toutes les valeurs sont possible ! Il ne faudrait tester alors que les cases qui on des contraintes (tout le problème sera de déterminer les case qui n'on pas de containte) ! Ensuite, certaines cases peuvent avoir plusieurs solutions, donc la encore il y a un petit soucit. Enfin, si tu arrive à régler ces deux problèmes et si 'il n'y en a pas d'autre (et oui, je ne sais pas si j'ai pensé à tous les bug possible !), il faut savoir que le temp de traitement risque d'être long ! Cette technique de backtracking est à mon avis pas très adapté au Sudoku !
À ce niveau, tu dois être un peu dégouté, mais j'ai pau être une petite solution pour toi : http://www.pythonfrance.com/codes/GENERER-NOUVEAUX-SUDOKU-AVEC-LEURS-SOLUTIONS_41623.aspx
Je ne sais pas ce que sa vaut je ne l'ai pas testé ni étudié !
Voila, je pense avoir été assez clair, mais je ne sais pas si ça te convient. Respasse par le forum si ça ne te conviens pas ! Bonne continuation et bon courage !
_______
Aéra
---------------------------
Aide en Python :
   - http://www.pythonfrance.com/infomsg_AIDE-OBTENIR-INFORMATION-WINDOWS_989712.aspx
   - http://www.pythonfrance.com/codes/TUTORIEL-INTRODUCTION-WXPYTHON_43203.aspx
   - http://www.pythonfrance.com/codes/TUTORIEL-COMPILATION-AVEC-PY2EXE_41249.aspx
0
Rejoignez-nous