if not grilleFinie[l][c] and ites: for nb in grille[l][c]: compteur = [0,0,0] for k in range(9): if not grilleFinie[l][k] and k != c: for n in grille[l][k]: compteur[0] += int(n == nb) if not grilleFinie[k][c] and k != l: for n in grille[k][c]: compteur[1] += int(n == nb) for i in lc: for j in cc: if not grilleFinie[i][j] and (i,j) != (l,c): for n in grille[i][j]: compteur[2] += int(n == nb) if compteur[0] == 0 or compteur[1] == 0 or compteur[2] == 0: grilleFinie[l][c] = True grille[l][c] = nb for k in range(9): if not grilleFinie[l][k] and grille[l][c] in grille[l][k] and k != c: grille[l][k].remove(grille[l][c]) if not grilleFinie[k][c] and grille[l][c] in grille[k][c] and k != l: grille[k][c].remove(grille[l][c]) for i in lc: for j in cc: if not grilleFinie[i][j] and grille[l][c] in grille[i][j] and (i,j) != (l,c): grille[i][j].remove(grille[l][c]) break