Bonjour,

Pour mon TIPE, j'ai fait un code qui affiche un carré qui se déplace sur une image de fond grâce a tkinter, 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
 
import os
 
os.chdir("U:/Documents/")
 
import tkinter as tk
import time as t
liste = [(0, 0),(0, 1), (0, 2), (1, 2), (2, 2), (3, 2), (3, 3), (3, 4), (4, 4), (5, 4), (5, 5), (5, 6), (6, 6), (7, 6), (7, 7), (7,8), (8, 8), (9, 8), (10, 8), (10, 9), (10, 10), (10, 11), (11, 11), (12, 11), (12, 12), (12, 13), (12, 14), (13, 14), (14, 14),(14, 15), (14, 16), (15, 16), (16, 16)] 
 
#opérations de base
def moins_tuple(t,u):
    n = len(t)
    n2 = len(u)
    if n != n2:
        raise ValueError("the tuples must have the same length")
    else:
        r = tuple()
        for k in range(n):
            r = r + (t[k]-u[k],)
    return(r)
 
def plus_tuple(t,u):
    n = len(t)
    n2 = len(u)
    if n != n2:
        raise ValueError("the tuples must have the same length")
    else:
        r = tuple()
        for k in range(n):
            r = r + (t[k]+u[k],)
    return(r)
 
 
#code du déplacement
 
L = liste
n = len(liste)
i = 0
l,c = L[0]
l2 = 30*(l)+2
c2 = 30*(c)+2
com = 0
 
 
 
fenetre = tk.Tk()
photo = tk.PhotoImage(file = "UEA.gif")
 
def dplct2():
    global L,i,com,l2,c2
    if i< n-1:
        if com<10:
            x,y = moins_tuple(L[i+1],L[i])
            l2 = l2 + x*3
            c2 = c2 + y*3
            canvas.coords(rectangle,c2+3,l2+3,c2+27,l2+27)
            fenetre.after(70,dplct2)
            com = com + 1
        else:
            com = 0
            i = i+1
            fenetre.after(1,dplct2)
 
def dplct(event):
    dplct2()
 
 
canvas = tk.Canvas(fenetre, width = 512, height = 512,bg = 'cyan')
item = canvas.create_image(256,256, image=photo)
canvas.pack(padx = 5 , pady = 5)
rectangle = canvas.create_rectangle(c*30+3,l*30+3  ,c*30+27,l  *30+27,fill="black")
canvas.focus_set()
canvas.bind('<KeyPress-space>',dplct)
fenetre.mainloop()
Ce code affiche parfaitement ce que je veux.

Cependant, j'aimerais, afin de pouvoir l'utiliser dans mon TIPE, passer le code du déplacement dans une fonction du type f(liste), mais toutes mes tentatives se sont soldées par des échecs...

Merci d'avance pour votre aide !