diff --git a/snake/deplacement.c b/snake/deplacement.c index c764393..803f4ca 100644 --- a/snake/deplacement.c +++ b/snake/deplacement.c @@ -29,6 +29,62 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) { yellow = CouleurParComposante(255,255,0); + + + printf("%d %d", queue[0], queue[1]); + + + if ( *sens == BAS) { + + plateau[tete[0] + 1][tete[1]] = 1; + + plateau[queue[0]][queue[1]] = 0; + + tete[0] = tete[0] + 1; + + ChoisirCouleurDessin(yellow); + RemplirRectangle(20*(tete[1] + 1),20*(tete[0] +1 ),20,20); + + ChoisirCouleurDessin(green); + RemplirRectangle(20*(queue[1] +1 ),20*(queue[0] +1 ),20,20); + + queue[0] = queue[0] + 1; + + + + + } + + if ( *sens == HAUT) { + + plateau[tete[0] - 1][tete[1]] = 1; + + plateau[queue[0]][queue[1]] = 0; + + tete[0] = tete[0] -1; + + } + + if ( *sens == DROITE) { + + plateau[tete[0]][tete[1] + 1] = 1; + + plateau[queue[0]][queue[1]] = 0; + + tete[1] = tete[1] + 1; + + } + + if ( *sens == GAUCHE) { + + plateau[tete[0]][tete[1] - 1] = 1; + + plateau[queue[0]][queue[1]] = 0; + + tete[1] = tete[1] - 1; + + } + /* affectations des commandes aux touches du jeu */ @@ -89,55 +145,9 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) { *sens = DROITE; } + } - else { - if ( *sens == BAS) { - - plateau[tete[0] + 1][tete[1]] = 1; - - plateau[queue[0]][queue[1]] = 0; - - tete[0] = tete[0] + 1; - - ChoisirCouleurDessin(yellow); - RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20); - - ChoisirCouleurDessin(green); - RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20); - - - } - - if ( *sens == HAUT) { - - plateau[tete[0] - 1][tete[1]] = 1; - - plateau[queue[0]][queue[1]] = 0; - - tete[0] = tete[0] -1; - - } - - if ( *sens == DROITE) { - - plateau[tete[0]][tete[1] + 1] = 1; - - plateau[queue[0]][queue[1]] = 0; - - tete[1] = tete[1] + 1; - - } - - if ( *sens == GAUCHE) { - - plateau[tete[0]][tete[1] - 1] = 1; - - plateau[queue[0]][queue[1]] = 0; - - tete[1] = tete[1] - 1; - - } @@ -145,12 +155,12 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) { /* mise à jour de la position de queue dans le plateau */ - } - } - - + } + + + diff --git a/snake/lancement b/snake/lancement index 54aaf37..28522c0 100755 Binary files a/snake/lancement and b/snake/lancement differ diff --git a/snake/main.c b/snake/main.c index 635f63c..dad04c3 100644 --- a/snake/main.c +++ b/snake/main.c @@ -51,6 +51,8 @@ int main(void) { deplacement(pointeur, sens); + suivant = Microsecondes() + CYCLE; + } diff --git a/snake/plateau_init.c b/snake/plateau_init.c index e87db1e..b985944 100755 --- a/snake/plateau_init.c +++ b/snake/plateau_init.c @@ -20,7 +20,6 @@ struct adresse* plateau_init(void) { int** plateau = NULL; - struct adresse plateau_tete_queue = {NULL, NULL, NULL}; struct adresse* pointeur = NULL; @@ -55,12 +54,12 @@ struct adresse* plateau_init(void) { /* positionnement du serpent et marquage de la tete et la queue */ - tete[0] = (LIGNES/2)-5 ; + tete[0] = ((LIGNES/2)+(TAILLE_SERPENT/2)-1); tete[1] = COLONNES/2 ; - queue[0] = ((LIGNES/2)-5)+TAILLE_SERPENT-1; + queue[0] = ((LIGNES/2)-(TAILLE_SERPENT/2)); queue[1] = COLONNES/2; for (i = 0; i < TAILLE_SERPENT ; i++) {