Outils pour utilisateurs

Outils du site


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

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