Bonjour tout le monde j'aurai besoin d'aide sur mon programme.
En effet je n'arrive pas à mettre en place la récursivité sur ma fonction traitement_affiche(grille,clic_grille,x,y,n)

type grille: liste
type clic_grille: liste
type x: int
type y : int
type n: int
arg grille: ma grille de demineur avec l'emplacement des bombes et les chiffre
arg clic_grille: montrent les zones decouverte '*' pour cacher et '/' pour montrer
arg x: coordonées x de la grille que le joueur joue
arg y: coordonées y de la grille que le joueur joue
arg n: longueur de la grille (carré)

les bombes sont codées par 'b' dans la liste grille.

et voila mon code :
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
 
from tkinter import *
from random import choice,randint
 
def crea_tableaux(n):
    grille=[]
    for i in range(n):
        deux=[]
        for i in range(n):
            deux.append(0)
        grille.append(deux)
    return grille
 
def vu_grille(n):
    grille=[]
    for i in range(n):
        deux=[]
        for i in range(n):
            deux.append('*')
        grille.append(deux)
    return grille
 
def case_vide(grille):
    liste=[]
    n=len(grille)
    for i in range(n):
        for j in range(n):
            if grille[i][j]!='b':
                liste.append([i,j])
    return liste
 
 
def place_bombe(grille,nb):
    for i in range(nb):
        x,y=choice(case_vide(grille))
        grille[x][y]='b'
    return grille
def affiche(grille,clic_grille,n):
    for i in range(n):
        for j in range(n):
            if clic_grille[i][j]!='*':
                print(grille[i][j],end='  ')
            else:
                print('*',end='  ')
        print()
 
def init(n,nb_bombe):
    global grille
    grille=crea_tableaux(n)
    grille=place_bombe(grille,nb_bombe)
    clic_grille=vu_grille(n)
    #affiche(grille,clic_grille,n)
    while True:
        x,y=input_r()
        if grille[x][y]=='b':
            print('vous avez perdu')
            break
        else:
            clic_grille=traitement_affiche(grille,clic_grille,x,y,n)
            #affiche(grille,clic_grille,n)
 
 
def traitement_affiche(grille,clic_grille,x,y,n):
    print(n)
    if x in range(n) and y in range(n):
        print(grille[x][y])
        if grille[x][y]!=0:
            print('in')
            clic_grille[x][y]='/'
            return clic_grille
 
        elif grille[x][y]==0:
 
            print('out')
            clic_grille[x][y]='/'         
            clic_grille=traitement_affiche(grille,clic_grille,x-1,y-1,n)
            clic_grille=traitement_affiche(grille,clic_grille,x-1,y,n)
            clic_grille=traitement_affiche(grille,clic_grille,x+1,y-1,n)
            clic_grille=traitement_affiche(grille,clic_grille,x+1,y,n)
            clic_grille=traitement_affiche(grille,clic_grille,x,y-1,n)
            clic_grille=traitement_affiche(grille,clic_grille,x-1,y+1,n)
            clic_grille=traitement_affiche(grille,clic_grille,x,y+1,n)
            clic_grille=traitement_affiche(grille,clic_grille,x+1,y+1,n)
            return clic_grille
    return clic_grille    
def input_r():
    entry=input('spécifiez les coordonées x et y séparées d'+"'"+'un espace\n').split()
    try :
        entry[0],entry[1]=int(entry[0]),int(entry[1])
    except ValueError:return input_r()
    return entry
 
 
def bombe_proxi(grille,x,y,n):
    if grille[x][y]!='b':
        if x>0 and y>0:
            if grille[x-1][y-1]=='b':
                grille[x][y]+=1
            if grille[x-1][y]=='b':
                grille[x][y]+=1
        if x<n and y>0:   
            if grille[x+1][y-1]=='b':
                grille[x][y]+=1
        if x<n:
            if grille[x+1][y]=='b':
                grille[x][y]+=1
        if y>0:
            if grille[x][y-1]=='b':
                grille[x][y]+=1
        if x>0 and y<n:
            if grille[x-1][y+1]=='b':
                grille[x][y]+=1
        if y<n:
            if grille[x][y+1]=='b':
                grille[x][y]+=1
 
        if x<n and y<n:
            if grille[x+1][y+1]=='b':
                grille[x][y]+=1
    return grille
 
def test_bombe(grille):
    n=len(grille)
    print(n)
    for i in range(n):
        for j in range(n):
            grille=bombe_proxi(grille,i,j,n-1)
    return grille
et si vous avez des question n'hésitez je sais que je ne suis pas toujours claire dans mes explication, en vous remerciant