Bonsoir,
Je viens vous demande votre aide car je bloque sur un projet sur le quel je dois faire un 1010(Tétris statique) en language python
Mon problème vient du fait que pour faire la grille de départ, j'ai utilisé une boucle for, et stocker chaque bouton dans une liste, c'est a dire comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
lab=[]
for k in range(1,10):
    for i in range(1,10):
        labk=Button(fen,image=gris,command=lambda:placement() )
        lab.append(labk)              
        lab[-1].grid(row=i,column=k)
Donc ca me crée bien une en 9*9 comme j'en ai envie, ici j'ai normalement aucun soucis
Le problème vient ensuite de ma fonction placement, dans cette dernière j'aimerais que lorsqu'on clique sur une case, cette dernière, et celle(s) à coté change de couleur en fonction de la pièce disponible, j'ai donc coder cela de tel sorte:
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
def placement():
    global a 
 
    if a==1:
        lab[0].configure(image=jaune)
        lab[0+9].configure(image=jaune)
        lab[0+18].configure(image=jaune)
    elif a==2:
        lab[0].configure(image=rouge)
        lab[1].configure(image=rouge)
        lab[2].configure(image=rouge)
        lab[0+9].configure(image=rouge)
        lab[1+9].configure(image=rouge)
        lab[2+9].configure(image=rouge)
        lab[0+18].configure(image=rouge)
        lab[1+18].configure(image=rouge)
        lab[2+18].configure(image=rouge)
    elif a==3:
        lab[0].configure(image=bleu)
        lab[0+9].configure(image=bleu)
        lab[0+18].configure(image=bleu)
        lab[1+18].configure(image=bleu)
        lab[2+18].configure(image=bleu)
    elif a==4:
        lab[0].configure(image=violet)
        lab[0+1].configure(image=violet)
        lab[0+2].configure(image=violet)
        lab[2+9].configure(image=violet)
    elif a==5:
        lab[0].configure(image=vert)
        lab[1].configure(image=vert)
        lab[0+9].configure(image=vert)
        lab[1+9].configure(image=vert)
    elif a==6:
        lab[0].configure(image=jaune)
    alea()
Et c'est la que vient mon grand problème, j'aimerais que a la place du 0 que j'ai mis, ca soit la position du bouton sur le quel j'ai cliqué, or je n'ai aucune idée de comment on fais appelle au bouton sur le quel on à cliqué, c'est pour ca que j'aurais grandement besoin de votre aide
Je vous laisse également le code complet si jamais ca peut aider, merci à vous
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#Module qu'on import pour le projet
from tkinter import *   #Tkinter pour l'interface graphique
from random import *   #Random pour avoir un jeux aléatoire 
a=0
#Les fonctions
def alea():
    global a 
    a=randint(1,1)
 
    if a == 1 :
        labb.configure(image=jaune)
        labc.configure(image=jaune)
        labd.configure(image=jaune)
        labe.configure(image=gris)
        labf.configure(image=gris)
        labg.configure(image=gris)
        labh.configure(image=gris)
        labt.configure(image=gris)
        labj.configure(image=gris)
 
    elif a == 2:
        labb.configure(image=rouge)
        labc.configure(image=rouge)
        labd.configure(image=rouge)
        labe.configure(image=rouge)
        labf.configure(image=rouge)
        labg.configure(image=rouge)
        labh.configure(image=rouge)
        labt.configure(image=rouge)
        labj.configure(image=rouge)
 
    elif a == 3:
        labb.configure(image=bleu)
        labc.configure(image=bleu)
        labd.configure(image=bleu)
        labj.configure(image=bleu)
        labg.configure(image=bleu)
        labe.configure(image=gris)
        labf.configure(image=gris)
        labh.configure(image=gris)
        labt.configure(image=gris)
 
    elif a ==4:
        labb.configure(image=violet)
        labc.configure(image=gris)
        labd.configure(image=gris)
        labe.configure(image=violet)
        labf.configure(image=gris)
        labg.configure(image=gris)
        labh.configure(image=violet)
        labt.configure(image=violet)
        labj.configure(image=gris)
 
    elif a ==5:
        labb.configure(image=vert)
        labc.configure(image=vert)
        labd.configure(image=gris)
        labe.configure(image=vert)
        labf.configure(image=vert)
        labg.configure(image=gris)
        labh.configure(image=gris)
        labt.configure(image=gris)
        labj.configure(image=gris)
 
    elif a ==6:
        labb.configure(image=jaune)
        labc.configure(image=gris)
        labd.configure(image=gris)
        labe.configure(image=gris)
        labf.configure(image=gris)
        labg.configure(image=gris)
        labh.configure(image=gris)
        labt.configure(image=gris)
        labj.configure(image=gris)
 
def placement():
    global a 
 
    if a==1:
        lab[0].configure(image=jaune)
        lab[0+9].configure(image=jaune)
        lab[0+18].configure(image=jaune)
    elif a==2:
        lab[0].configure(image=rouge)
        lab[1].configure(image=rouge)
        lab[2].configure(image=rouge)
        lab[0+9].configure(image=rouge)
        lab[1+9].configure(image=rouge)
        lab[2+9].configure(image=rouge)
        lab[0+18].configure(image=rouge)
        lab[1+18].configure(image=rouge)
        lab[2+18].configure(image=rouge)
    elif a==3:
        lab[0].configure(image=bleu)
        lab[0+9].configure(image=bleu)
        lab[0+18].configure(image=bleu)
        lab[1+18].configure(image=bleu)
        lab[2+18].configure(image=bleu)
    elif a==4:
        lab[0].configure(image=violet)
        lab[0+1].configure(image=violet)
        lab[0+2].configure(image=violet)
        lab[2+9].configure(image=violet)
    elif a==5:
        lab[0].configure(image=vert)
        lab[1].configure(image=vert)
        lab[0+9].configure(image=vert)
        lab[1+9].configure(image=vert)
    elif a==6:
        lab[0].configure(image=jaune)
    alea()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#Début du script
 
fen = Tk()   #On crée une fenetre Tkinter, ou toute la partie graphique se passera dedans
 
#Image qu'on import
rouge = PhotoImage(file = 'carre rouge.PNG', master = fen)
violet = PhotoImage(file = 'carre violet.PNG', master = fen)
vert = PhotoImage(file = 'carre vert.PNG', master = fen)
bleu = PhotoImage(file = 'carre bleu.PNG', master = fen)
gris = PhotoImage(file = 'carre gris.PNG', master = fen)
jaune = PhotoImage(file = 'carre jaune.PNG', master = fen) 
piece = PhotoImage(file='piece.PNG', master = fen)
#Création des labels
lab=[]
for k in range(1,10):
    for i in range(1,10):
        labk=Button(fen,image=gris,command=lambda:placement() )
        lab.append(labk)              
        lab[-1].grid(row=i,column=k)
print(lab)
 
labA=Label(fen,image = piece)
labA.grid(row=3,column=10)
labb=Label(fen,image=gris)
labb.grid(row=3,column=11)
labc=Label(fen,image=gris)
labc.grid(row=3,column=12)
labd=Label(fen,image=gris)
labd.grid(row=3,column=13)
labe=Label(fen,image=gris)
labe.grid(row=4,column=11)
labf=Label(fen,image=gris)
labf.grid(row=4,column=12)
labg=Label(fen,image=gris)
labg.grid(row=4,column=13)
labh=Label(fen,image=gris)
labh.grid(row=5,column=11)
labt=Label(fen,image=gris)
labt.grid(row=5,column=12)
labj=Label(fen,image=gris)
labj.grid(row=5,column=13)
 
alea()
 
fen.mainloop()