Bonjour j'ai eu un projet a rendre dans le quel j'ai faire un long mur de if qui est très moche et étant encore débutant j'aimerais des conseils pour réduire cette horreur qui est obligatoirement (a moins de changer tout le programme) dans la fonction "choix_promo" qui ne prend en argument que "event" qui donne les coordonnées de la souris. Pour être bref dans la description ce ce morceau du code d'un jeu d'échecs sous tkinter, il recupere via les variables globales des noms d'images qui sont toutes supprimées lors du choix de la promotion du pion et les lignes "DraggalbleImage(...)" remplacent le pion qui a été promu par le pion qu'on a choisi.
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
def choix_promo(event):
    global choix_promotion, pion_promu, promo_dame_n, promo_fou_n, promo_cava_n, promo_tour_n, promo_dame_b, promo_fou_b, promo_cava_b, promo_tour_b
    if 560 < event.y <= 640:
        c_echecs.delete(promo_dame_n)
        c_echecs.delete(promo_fou_n)
        c_echecs.delete(promo_cava_n)
        c_echecs.delete(promo_tour_n)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, dame_n1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "dame", "noir")
        plateau[pion_promu[1]][pion_promu[2]] = "dame_n"
    elif 480 < event.y <= 560:
        c_echecs.delete(promo_dame_n)
        c_echecs.delete(promo_fou_n)
        c_echecs.delete(promo_cava_n)
        c_echecs.delete(promo_tour_n)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, fou_n1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "fou", "noir")
        plateau[pion_promu[1]][pion_promu[2]] = "fou_n"
    elif 400 < event.y <= 480:
        c_echecs.delete(promo_dame_n)
        c_echecs.delete(promo_fou_n)
        c_echecs.delete(promo_cava_n)
        c_echecs.delete(promo_tour_n)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, cava_n1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "cava", "noir")
        plateau[pion_promu[1]][pion_promu[2]] = "cava_n"
    elif 320 < event.y <= 400:
        c_echecs.delete(promo_dame_n)
        c_echecs.delete(promo_fou_n)
        c_echecs.delete(promo_cava_n)
        c_echecs.delete(promo_tour_n)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, tour_n1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "tour", "noir")
        plateau[pion_promu[1]][pion_promu[2]] -= "tour_n"
 
    elif 240 < event.y <= 320:
        c_echecs.delete(promo_dame_b)
        c_echecs.delete(promo_fou_b)
        c_echecs.delete(promo_cava_b)
        c_echecs.delete(promo_tour_b)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, tour_b1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "tour", "blanc")
        plateau[pion_promu[1]][pion_promu[2]] = "tour_b"
    elif 160 < event.y <= 240:
        c_echecs.delete(promo_dame_b)
        c_echecs.delete(promo_fou_b)
        c_echecs.delete(promo_cava_b)
        c_echecs.delete(promo_tour_b)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, cava_b1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "cava", "blanc")
        plateau[pion_promu[1]][pion_promu[2]] = "cava_b"
    elif 80 < event.y <= 160:
        c_echecs.delete(promo_dame_b)
        c_echecs.delete(promo_fou_b)
        c_echecs.delete(promo_cava_b)
        c_echecs.delete(promo_tour_b)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, fou_b1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "fou", "blanc")
        plateau[pion_promu[1]][pion_promu[2]] = "fou_b"
    elif event.y <= 80:
        c_echecs.delete(promo_dame_b)
        c_echecs.delete(promo_fou_b)
        c_echecs.delete(promo_cava_b)
        c_echecs.delete(promo_tour_b)
        c_echecs.delete(pion_promu[0])
        DraggableImage(c_echecs, dame_b1, pion_promu[1], pion_promu[2], 80 + (pion_promu[2] * 80), 40 + (pion_promu[1] * 80), "dame", "blanc")
        plateau[pion_promu[1]][pion_promu[2]] = "dame_b"