Bonjour je suis en train de coder un snake et je me confronte au problème suivant lorsque je change rapidement de direction ( voir l'image).

Nom : probleme snake.png
Affichages : 117
Taille : 3,3 Ko

Pourtant j'utilise une fonction qui ,pour déplacer chaque parties du corps, récupère les positions de la parties précédentes. Voici la dite fonction :

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
for(int unsigned i = 1; i < coordonneePosition.size(); i++)
    {
        switch(direction)
        {
        case 0:
            if(coordonneePosition[i].y > coordonneePosition[i-1].y)
            {
                coordonneePosition[i].y--;
            }
            if(coordonneePosition[i].y < coordonneePosition[i-1].y)
            {
                coordonneePosition[i].y++;
            }
             if(coordonneePosition[i].y == coordonneePosition[i-1].y)
             {
                  coordonneePosition[i].x = coordonneePosition[i-1].x + 25;
             }
 
            break;
        case 1:
             if(coordonneePosition[i].y > coordonneePosition[i-1].y)
            {
                coordonneePosition[i].y--;
            }
            if(coordonneePosition[i].y < coordonneePosition[i-1].y)
            {
                coordonneePosition[i].y++;
            }
             if(coordonneePosition[i].y == coordonneePosition[i-1].y)
             {
                  coordonneePosition[i].x = coordonneePosition[i-1].x - 25;
             }
            break;
        case 2:
              if(coordonneePosition[i].x > coordonneePosition[i-1].x)
            {
                coordonneePosition[i].x--;
            }
            if(coordonneePosition[i].x < coordonneePosition[i-1].x)
            {
                coordonneePosition[i].x++;
            }
             if(coordonneePosition[i].x == coordonneePosition[i-1].x)
             {
                  coordonneePosition[i].y = coordonneePosition[i-1].y + 25;
             }
            break;
        case 3:
             if(coordonneePosition[i].x > coordonneePosition[i-1].x)
            {
                coordonneePosition[i].x--;
            }
            if(coordonneePosition[i].x < coordonneePosition[i-1].x)
            {
                coordonneePosition[i].x++;
            }
             if(coordonneePosition[i].x == coordonneePosition[i-1].x)
             {
                  coordonneePosition[i].y = coordonneePosition[i-1].y - 25;
             }
            break;
 
        }
    }
Pouvez vous m'indiquez l'erreur de mon idée ??

D'avance merci.