nsi:projets:tableaux:sudoku
Ceci est une ancienne révision du document !
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Solveur de Sudoku
Méthode de résolution
Implémentation
Choix d'une représentation pour la grille
Fonctions utiles
Je vous propose l'implémentation suivante – à vous de compléter les fonctions.
# solveur de sudoku
# grille représente une grille de sudoku. À vous de décider de son organisation
def connnus_ligne(grille, ligne):
'''
cette fonction renvoie tous les chiffres déjà écrits dans une certaine ligne
sous forme d'un tableau, pas forcément dans l'ordre
par exemple [7,5,2,9] pour la ligne 1 (la 2e ligne donc)
'''
def connus_colonne(grille, colonne):
'''
même chose pour une colonne
'''
def connus_region(grille, ligne, colonne):
'''
même chose pour une région
'''
def restants(grille, ligne, colonne):
'''
cette fonction, pour une certaine ligne et colonne,
à condition que cette case soit actuellement vide,
commence par chercher tous les nombres déjà connus dans la même ligne , colonne, région
et déduit les valeurs restantes possibles, ceux qu'on appelle les candidats
par exemple pour ligne = 0 et colonne = 1, devrait renvoyer [4, 9]
'''
def solve(grille):
'''
parcours la grille à la recherche de case vides
pour chaque case vide, regarde les candidats possibles,
s'il n'y en a qu'un seul, écrit ce candidat dans la case.
Chaque fois qu'on a pu écrire une valeur dans la grille, on prévoit
un nouveau parcours complet de grille.
On s'arrête si la grille est pleine ou si on l'a parcouru entièrement sans pouvoir rien ajouter.
'''
À faire
- Réaliser l'implémentation.
- Bien documenter les fonctions
- prévoir au moins un exemple de résolution
nsi/projets/tableaux/sudoku.1640603263.txt.gz · Dernière modification : de goupillwiki
