Nous sommes en classe de Terminal S en spécialité ISN.
Dans notre spécialité nous devons pour le bac coder le jeu du démineur.
Nous avons réussi entièrement a créer ce démineur mais nous bloquons pour l'action du joueur sur une case vide ou une récursivité doit s'enclencher pour ouvrir a la chaîne toutes les cases vides ainsi que les chiffres autour.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#cette fonction s'active en cas de clique sur une case vide
#a correspond a la ligne et b a la colonne
#leur valeur varie entre 0 et 20 dans une matrice de 20x20
def case_vide(a,b):
    if a==0 or a==20 or b==0 or b==20:
        """case_vide_particuliere(a,b)"""
        #on traitera ici les cas particuliers des premieres et derniere ligne/colone
        pass
    else:
        can.create_text(b*25+15, a*25+15,
                    text=grille[a][b], fill='black',font='Arial 16')
        can.create_text((b-1)*25+15, (a-1)*25+15,
                    text=grille[a-1][b-1], fill='black',font='Arial 16')
        if grille[a-1][b-1] == 0:
            case_vide(a-1,b-1)
        else:
            pass
        can.create_text((b-1)*25+15, a*25+15,
                    text=grille[a][b-1], fill='black',font='Arial 16')
        if grille[a][b-1] == 0:
            case_vide(a,b-1)
        else:
            pass
        can.create_text((b-1)*25+15, (a+1)*25+15,
                    text=grille[a+1][b-1], fill='black',font='Arial 16')
        if grille[a+1][b-1] == 0:
            case_vide(a+1,b-1)
        else:
            pass
        can.create_text(b*25+15, (a+1)*25+15,
                    text=grille[a+1][b], fill='black',font='Arial 16')
        if grille[a+1][b] == 0:
            case_vide(a+1,b)
        else:
            pass
        can.create_text((b+1)*25+15, (a+1)*25+15,
                    text=grille[a+1][b+1], fill='black',font='Arial 16')
        if grille[a+1][b+1] == 0:
            case_vide(a+1,b+1)
        else:
            pass
        can.create_text((b+1)*25+15, a*25+15,
                    text=grille[a][b+1], fill='black',font='Arial 16')
        if grille[a][b+1] == 0:
            case_vide(a,b+1)
        else:
            pass
        can.create_text((b+1)*25+15, (a-1)*25+15,
                    text=grille[a-1][b+1], fill='black',font='Arial 16')
        if grille[a-1][b+1] == 0:
            case_vide(a-1,b+1)
        else:
            pass
        can.create_text(b*25+15, (a-1)*25+15,
                    text=grille[a-1][b], fill='black',font='Arial 16')
        if grille[a-1][b] == 0:
            case_vide(a-1,b)
        else:
            pass
Merci de l'aide que vous pourriez nous apporter