0% ont trouvé ce document utile (0 vote)
9 vues2 pages

Résolution de Sudoku en Python

Transféré par

ayetbouhlali26
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues2 pages

Résolution de Sudoku en Python

Transféré par

ayetbouhlali26
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : Résolution de sudoku

L’objet du problème est d’écrire un programme en python qui résout les Sudoku.
En effet, le principe de la résolution d’une grille de sudoku peut s’énoncer facilement par les cinq règles
logiques ci-dessous. Construire à partir d’une grille initiale I donnée une grille finale F telle que :
1. Toute case de F contient une et une seule fois l’un des chiffres 1 à 9
2. Toute ligne de F contient une et une seule fois chacun des chiffres 1 à 9
3. Toute colonne de F contient une et une seule fois chacun des chiffres 1 à 9
4. Tout bloc de F contient une et une seule fois chacun des chiffres 1 à 9
5. Toute case de I remplie conserve la même valeur dans F.

Grille initiale I Grille finale F

Travail à faire
On vous donne la grille I suivante:
I= [[0, 7, 0, 5, 3, 0, 9, 8, 0],
[0, 0, 6, 0, 2, 0, 7, 0, 0],
[0, 0, 0, 6, 0, 0, 2, 5, 7],
[5, 4, 0, 4, 0, 0, 8, 0, 2],
[3, 0, 6, 0, 0, 0, 7, 0, 0],
[0, 0, 4, 0, 0, 3, 1, 0, 0],
[4, 1, 5, 9, 0, 2, 3, 7, 0],
[0, 6, 0, 0, 0, 0, 4, 0, 0],
[0, 0, 8, 0, 7, 0, 0, 6, 0]]

1. Écrire le code python qui permet d’affiche cette grille I


2. Écrire une fonction qui retourne le nombre de case vide (=0) de cette grille.
3. Écrire une fonction convertir_chaine() qui prend en paramètre une chaîne Sudoku de 81 éléments
et la convertir vers une grille Sudoku et retourne deux valeurs
• Converti: qui indique le succès ou l’échec de la conversion si le nombre d’éléments de la chaîne
différent de 81
• Grille: grille sudoku ou None si Converti est False
4. Écrire une fonction lire_fichier() qui permet de lire le fichier [Link] qui contient plusieurs
chaîne Sudoku , choisir une chaîne au hasard (en utilisant la fonction randint du module random)
et retourne cette chaîne sous format liste de liste
5. On cconsidère une ligne d’un jeu de sudoku : ligne_x = [2,9,3,8,7,1,6,4,5]
Écrire une fonction qui vérifie (dans le cas général) si une ligne est conforme aux règles de
sudoku.
6. Écrire une fonction saisir(), qui retourne la position[i, j] et la valeur à ajouter
7. Écrire une fonction verif(), qui prend comme valeur la position et la valeur et teste si la valeur à
ajouter différent de ceux déjà présents sur la même ligne, colonne et dans le petit carré auquel
appartient la case choisi.
8. Ajouter le code nécessaire qui affiche “Excellent!! Vous avez gagné cette partie” si le nombre
de case vide =81 et “vous avez commis 3 erreurs et avez perdu cette partie”.

Vous aimerez peut-être aussi