Ci joint une fonction Python récursive qui donne une solution pour une grille de Sudoku.
Cette fonction peut être améliorée, mais là n'est pas le propos.

Le programme s'arrête après avoir trouvé une solution.
Je souhaite :
- compter le nombre de solutions ;
- conserver chaque solution s'il y en a plusieurs.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def PositionValide(position):
    if position == 81:
        return True
    ligne = position // 9
    colonne = position % 9
    if (Grille[ligne][colonne]) != 0:
        return PositionValide(position + 1)
    for nombre in range(0, 10):
        if absentDeCase(Grille, nombre, ligne, colonne):
            Grille[ligne][colonne] = nombre
            if PositionValide(position + 1):
                return True
    Grille[ligne][colonne] = 0
    return False
Des idées ? Merci