Bonjour ! Pour mon projet final d'ISN j'ai choisi le jeu de dame (notre cours s'arrête aux listes et aux bases de Tkinter) mais un problème survient toujours : je n'arrive pas à différencier deux cliques dans mon programme. Quand je définis un premier puis un deuxième cliques, Python confond les deux et met les deux pour une seule et unique coordonnée. Je voudrais testé deux cases par un clique pour savoir si un pion peut se déplacer dedans. J'ai essayé avec deux bind différents et des touches différents (clique gauche pour le premier clique et clique droit pour le deuxième clique) mais si les deux cliques ne sont pas dans le même programme alors Python ne veut pas tester les deux

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
 ####################################################################################################
#                                       Programme : Jeu de dame                                    #
#                                   Date : Troisième trimestre année 2014/2015                     #
####################################################################################################
 
##### Importation modules #####
 
from tkinter import *
 
##### Fonction #####
 
# Plateau #
 
def Plateau():
    global i,j,case
    i=0
    j=0
    case=50
    for i in range (0,10):
        for j in range (0,10):
            if (i%2)==0:
                if (j%2)==0:
                    Cadre.create_rectangle(j*case, i*case, (j*case)+case, (i*case)+case, fill='black')
                else:
                    Cadre.create_rectangle(j*case, i*case, (j*case)+case, (i*case)+case, fill='white')
            else:
                if (j%2)==0:
                    Cadre.create_rectangle(j*case, i*case, (j*case)+case, (i*case)+case, fill='white')
                else:
                    Cadre.create_rectangle(j*case, i*case, (j*case)+case, (i*case)+case, fill='black')
            j+=1
        i+=1
 
 
# Placement pion blanc #
 
def PionBlanc():
    global PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,PB16,PB17,PB18,PB19,PB20
 
    PB1=Cadre.create_oval(25-15, 25-15, 25+15, 25+15, fill='white')
    PB2=Cadre.create_oval(125-15, 25-15, 125+15, 25+15, fill='white')
    PB3=Cadre.create_oval(225-15, 25-15, 225+15, 25+15, fill='white')
    PB4=Cadre.create_oval(325-15, 25-15, 325+15, 25+15, fill='white')
    PB5=Cadre.create_oval(425-15, 25-15, 425+15, 25+15, fill='white')
 
    PB6=Cadre.create_oval(75-15, 75-15, 75+15, 75+15, fill='white')
    PB7=Cadre.create_oval(175-15, 75-15, 175+15, 75+15, fill='white')
    PB8=Cadre.create_oval(275-15, 75-15, 275+15, 75+15, fill='white')
    PB9=Cadre.create_oval(375-15, 75-15, 375+15, 75+15, fill='white')
    PB10=Cadre.create_oval(475-15, 75-15, 475+15, 75+15, fill='white')
 
    PB11=Cadre.create_oval(25-15, 125-15, 25+15, 125+15, fill='white')
    PB12=Cadre.create_oval(125-15, 125-15, 125+15, 125+15, fill='white')
    PB13=Cadre.create_oval(225-15, 125-15, 225+15, 125+15, fill='white')
    PB14=Cadre.create_oval(325-15, 125-15, 325+15, 125+15, fill='white')
    PB15=Cadre.create_oval(425-15, 125-15, 425+15, 125+15, fill='white')
 
    PB16=Cadre.create_oval(75-15, 175-15, 75+15, 175+15, fill='white')
    PB17=Cadre.create_oval(175-15, 175-15, 175+15, 175+15, fill='white')
    PB18=Cadre.create_oval(275-15, 175-15, 275+15, 175+15, fill='white')
    PB19=Cadre.create_oval(375-15, 175-15, 375+15, 175+15, fill='white')
    PB20=Cadre.create_oval(475-15, 175-15, 475+15, 175+15, fill='white')
 
 
# Cadre.create_oval(x-r, y-r, x+r, y+r, fill='color')
# Centre de coordonnées (x;y) et de rayon r
 
 
# Placement pion noir #
 
def PionNoir():
    global PN1,PN2,PN3,PN4,PN5,PN6,PN7,PN8,PN9,PN10,PN11,PN12,PN13,PN14,PN15,PN16,PN17,PN18,PN19,PN20
 
    PN1=Cadre.create_oval(75-15, 475-15, 75+15, 475+15, outline='white')
    PN2=Cadre.create_oval(175-15, 475-15, 175+15, 475+15, outline='white')
    PN3=Cadre.create_oval(275-15, 475-15, 275+15, 475+15, outline='white')
    PN4=Cadre.create_oval(375-15, 475-15, 375+15, 475+15, outline='white')
    PN5=Cadre.create_oval(475-15, 475-15, 475+15, 475+15, outline='white')
 
    PN6=Cadre.create_oval(25-15, 425-15, 25+15, 425+15, outline='white')
    PN7=Cadre.create_oval(125-15, 425-15, 125+15, 425+15, outline='white')
    PN8=Cadre.create_oval(225-15, 425-15, 225+15, 425+15, outline='white')
    PN9=Cadre.create_oval(325-15, 425-15, 325+15, 425+15, outline='white')
    PN10=Cadre.create_oval(425-15, 425-15, 425+15, 425+15, outline='white')
 
    PN11=Cadre.create_oval(75-15, 375-15, 75+15, 375+15, outline='white')
    PN12=Cadre.create_oval(175-15, 375-15, 175+15, 375+15, outline='white')
    PN13=Cadre.create_oval(275-15, 375-15, 275+15, 375+15, outline='white')
    PN14=Cadre.create_oval(375-15, 375-15, 375+15, 375+15, outline='white')
    PN15=Cadre.create_oval(475-15, 375-15, 475+15, 375+15, outline='white')
 
    PN16=Cadre.create_oval(25-15, 325-15, 25+15, 325+15, outline='white')
    PN17=Cadre.create_oval(125-15, 325-15, 125+15, 325+15, outline='white')
    PN18=Cadre.create_oval(225-15, 325-15, 225+15, 325+15, outline='white')
    PN19=Cadre.create_oval(325-15, 325-15, 325+15, 325+15, outline='white')
    PN20=Cadre.create_oval(425-15, 325-15, 425+15, 325+15, outline='white')
 
 
# Cadre.create_oval(x-r, y-r, x+r, y+r, outline='color')
# Centre de coordonnées (x;y) et de rayon r   
 
# Déplacement pions #
def IdentificationCase(x=0,y=0):
    j=(x-case)//case
    i=(y-case)//case
    return i,j
 
def IdentificationCase2(x=0,y=0):
    l=(x-case)//case
    k=(y-case)//case
    return k,l
 
def Clique1(event):
 
    # Transformation premier clique souris en coordonnée tableau #
 
    i,j=IdentificationCase(event.x,event.y)
    i += 1
    j += 1
    print (PlateauPion[i][j])
 
def Clique2(event):
 
    # Transformation deuxième clique souris en coordonnée tableau #
 
    k,l=IdentificationCase2(event.x,event.y)
    k += 1
    l += 1
    print (PlateauPion[k][l])
 
    # Teste toutes les possibilités à partir du clique de la souris #
 
    if [i,j]==[k,l]
        print ('If 1')
 
    if [i,j]!=[k,l]
        print ('If 2')
 
    if [i,j] and [k,l]==0:
        Cadre.move(Pion,l,k)
        print ('Else')
 
##### Programme principale #####
 
# Affichage #
 
Fenetre=Tk()
Fenetre.title('Jeu de dame')
 
Cadre=Canvas(Fenetre,bg='grey',height=500,width=500)
Cadre.pack()
 
Plateau()
PionBlanc()
PionNoir()
 
# Identification de la case #
 
IdentificationCase(x=0,y=0)
IdentificationCase2(x=0,y=0)
 
# Création liste #
 
PlateauPion=[[1,0,1,0,1,0,1,0,1,0],[0,1,0,1,0,1,0,1,0,1],[1,0,1,0,1,0,1,0,1,0],[0,1,0,1,0,1,0,1,0,1],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[2,0,2,0,2,0,2,0,2,0],[0,2,0,2,0,2,0,2,0,2],[2,0,2,0,2,0,2,0,2,0],[0,2,0,2,0,2,0,2,0,2]]
 
Cadre.bind("<Button-1>",Clique1)
Cadre.bind("<Button-3>",Clique2)
 
BoutonQuitter= Button (Fenetre, text='Quitter', command=Fenetre.destroy)
BoutonQuitter.pack(side=RIGHT)
 
Fenetre.mainloop()
Les IdentificationCase servent à transformer les coordonnées du clique en coordonnée pour le tableau qui celui-ci renvoie 0 pour une case vide, 1 pour un pion blanc et 2 pour un pion noir.

Merci d'avance