diff --git a/snake/deplacement.c b/snake/deplacement.c index a0a87e3..e476fea 100644 --- a/snake/deplacement.c +++ b/snake/deplacement.c @@ -6,20 +6,55 @@ #include #include #include - +#include "plateau_init.h" void deplacement(int* p) { + int i, j; + + int* tete = NULL, queue = NULL; + + /* alloacation des tableau tete et queue qui prendront les coordonnées de la tête et la queue */ + + tete = malloc(2*sizeof(short int)); + + queue = malloc(2*sizeof(short int)); + + + /* recherche de la tête et la queue dans le tableau */ + + for ( i = 0; i < LIGNES; i++) { + + for ( j = 0; j < COLONNES; j++) { + + if ( p[i][j] == -1) { + + tete[0] = i; + tete[1] = j; + + } + if ( p[i][j] == -2) { + + queue[0] = i; + queue[1] = j; + + } + } + } + + + + /* affectations des commandes aux touches du jeu */ if (TouchEnAttente() == 1) { if (Touche() == "Xk_Left") { - p[tete_x][tete_y] = 0; + p[tete[0]][tete[1]] = 0; - p[tete_x-1][tete_y] = 1; + p[tete[0]-1][tete[1]] = 1; - p[queue_x][queue_y] = 0; + p[queue[0]][queue[1]] = 0; } diff --git a/snake/fenetre.c b/snake/fenetre.c index 9ab2306..a8d5f87 100755 --- a/snake/fenetre.c +++ b/snake/fenetre.c @@ -70,7 +70,7 @@ int start (void) { RemplirRectangle(20*(j+1),20*(i+1),20,20); } - if ( tableau[i][j] == 1) { + if ( tableau[i][j] == 1 || tableau[i][j] == -1 || tableau[i][j] == -2) { yellow = CouleurParComposante(255,255,0); ChoisirCouleurDessin(yellow); @@ -85,6 +85,7 @@ int start (void) { RemplirRectangle(20*(j+1),20*(i+1),20,20); } + } } diff --git a/snake/plateau_init.c b/snake/plateau_init.c index 73450a0..a07c74b 100755 --- a/snake/plateau_init.c +++ b/snake/plateau_init.c @@ -11,21 +11,14 @@ #define NBR_POMME 5 #define TAILLE_SERPENT 10 -struct serpent { - int* ; - int* queue; -} -int** plateau_init(void) { +int** plateau_init(void) { int ligne_pomme, colonne_pomme, i; int** tableau = NULL; - struct serpent - - srand(time(NULL)); @@ -39,17 +32,21 @@ int** plateau_init(void) { } + - /* positionnement du serpent */ - for (i = 0; i < TAILLE_SERPENT; i++) { + /* positionnement du serpent et marquage de la tete et la queue */ + + tableau[(LIGNES/2)-5][COLONNES/2] = -2; + + tableau[((LIGNES/2)-5)+TAILLE_SERPENT-1][COLONNES/2] = -1; + + for (i = 1; i < TAILLE_SERPENT - 1; i++) { tableau[((LIGNES/2)-5)+i][COLONNES/2] = 1; - serpent - } - + } /* positionnement alétoire des pommes */ @@ -81,5 +78,5 @@ int** plateau_init(void) { - return tableau; + return tableau; }