Bonjour, je souhaites réaliser un jeu du serpent (sans prétention) et pour alléger mon code, je voudrais utiliser un dictionnaire pour les touches du clavier: left, right, up, down

Ce n'est pas très explicite mais ça ressemblerait à ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dx,dy = direction = {K_LEFT:(-1,0),K_RIGHT:(1,0),K_UP:(0,-1),K_DOWN:(0,1)}[event.get(KEYDOWN)[0].key]
Le problème est que j'utilise tkinter et je ne sais pas comment adapter cette ligne dans mon code que voici:

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
from tkinter import *
 
class Application(Tk):
    ''
    def __init__(self):
        ''
        Tk.__init__(self)
 
        self.width, self.height = 400, 400
        self.flag = 0
        self.dx, self.dy = 1, 0
 
        self.can = Canvas(self, width= self.width, height= self.height, bg= 'blue')
        self.can.pack(side= TOP)
 
        Button(self, text= 'Start', command= self.start).pack(side= LEFT)
        Button(self, text= 'Stop', command= self.stop).pack(side= LEFT)
        Button(self, text= 'Quit', command= self.destroy).pack(side= LEFT)
 
        self.bind('<Left>', self.left)
        self.bind('<Right>', self.right)
        self.bind('<Up>', self.up)
        self.bind('<Down>', self.down)
 
        self.serpent()
 
    def start(self):
        ''
        if self.flag == 0:
            self.flag = 1
            self.move()
 
    def stop(self):
        ''
        self.flag = 0
 
    def left(self, event= None):
        ''
        if self.dx == 0:
            self.dx, self.dy = -1, 0
 
    def right(self, event= None):
        ''
        if self.dx == 0:
            self.dx, self.dy = 1, 0
 
    def up(self, event= None):
        ''
        if self.dy == 0:
            self.dx, self.dy= 0, -1
 
    def down(self, event= None):
        ''
        if self.dy == 0:
            self.dx, self.dy = 0, 1
 
    def serpent(self):
        ''
        x, y, self.cc = 20, 20, 10
        self.serp = []
 
        for t in range(4):
            carre = self.can.create_rectangle(x, y, x+self.cc, y+self.cc, fill= 'green')
            self.serp.append([carre, x, y])
            x += self.cc
 
    def move(self):
        ''
        # Référence du carré de queue:
        ref_cq = self.serp[0][0]
 
        # Coordonnées du carré de tête:
        xt, yt = self.serp[-1][1], self.serp[-1][2]
 
        # Coordonnées du nouveau carré de tête:
        self.xq, self.yq = xt+self.dx*self.cc, yt+self.dy*self.cc
 
        # Limites du canevas:
        if self.xq < 15 or self.xq > self.width-15 or self.yq < 15 or self.yq > self.height-15:
            self.flag = 0
 
        # Déplacement effectif du carré de queue en carré de tête:
        self.can.coords(ref_cq, self.xq, self.yq, self.xq+self.cc, self.yq+self.cc)
 
        # Mémorisation dans la liste de ce nouveau carré de tête:
        self.serp.append([ref_cq, self.xq, self.yq])
 
        # Retrait de la liste de l'ancien carré de queue:
        del(self.serp[0])
 
        if self.flag > 0:
            self.after(50, self.move)
 
 
Application().mainloop()
Je n'ai aucune idée de comment faire alors si quelqu'un à la gentillesse de m'expliquer je l'en remercie par avance.

Bonne journée.