diff --git a/snake/Makefile b/snake/Makefile index 0b05061..8b4dd61 100755 --- a/snake/Makefile +++ b/snake/Makefile @@ -8,6 +8,7 @@ but : run OFILES = plateau_init.o \ fenetre.o \ + deplacement.o \ main.o CC = gcc @@ -16,11 +17,13 @@ CFLAGS = -ansi -pedantic -lgraph ### REGLES ESSENTIELLES ### -plateau_init.o : plateau_init.h +plateau_init.o : plateau_init.h fenetre.o : fenetre.h plateau_init.h -main.o : main.c fenetre.h +deplacement.o : deplacement.h + +main.o : main.c fenetre.h deplacement.h ### COMMANDES ### diff --git a/snake/deplacement.c b/snake/deplacement.c index a4d09e6..2e7f03f 100644 --- a/snake/deplacement.c +++ b/snake/deplacement.c @@ -5,14 +5,23 @@ #include <stdlib.h> #include <stdio.h> -#include <graphe.h> +#include <graph.h> #include "plateau_init.h" #include "update_queue.h" +#include "deplacement.h" -void deplacement(int** p, int* tete, int* queue) { - + + +void deplacement (struct adresse* pointeur, char* sens) { + + + int** plateau = pointeur -> plateau; + + unsigned char* tete = pointeur -> tete; + + unsigned char* queue = pointeur -> queue; /* affectations des commandes aux touches du jeu */ @@ -21,95 +30,95 @@ void deplacement(int** p, int* tete, int* queue) { if (Touche() == XK_Left) { - p[tete[0]][tete[1]] = 0; + plateau[tete[0]][tete[1]] = 0; - p[tete[0]][tete[1] - 1] = 1; + plateau[tete[0]][tete[1] - 1] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[1] = tete[1] - 1; - sens = "gauche"; + *sens = "gauche"; } if (Touch() == XK_Right) { - p[tete[0]][tete[1]] = 0; + plateau[tete[0]][tete[1]] = 0; - p[tete[0]][tete[1] + 1] = 1; + plateau[tete[0]][tete[1] + 1] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[1] = tete[1] + 1; - sens = "droite"; + *sens = "droite"; } if (Touch() == XK_Up) { - p[tete[0]][tete[1]] = 0; + plateau[tete[0]][tete[1]] = 0; - p[tete[0] - 1][tete[1]] = 1; + plateau[tete[0] - 1][tete[1]] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[0] = tete[0] - 1; - sens = "haut"; + *sens = "haut"; } - if (Touch() == XK_down) { + if (Touch() == XK_Down) { - p[tete[0]][tete[1]] = 0; + plateau[tete[0]][tete[1]] = 0; - p[tete[0] + 1][tete[1]] = 1; + plateau[tete[0] + 1][tete[1]] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[0] = tete[0] + 1; - sens = "bas"; + *sens = "bas"; } else { - if ( strcmp(sens,"bas") == 1) { + if ( strcmp(*sens,"bas") == 1) { - p[tete[0] + 1][tete[1]] = 1; + plateau[tete[0] + 1][tete[1]] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[0] = tete[0] + 1; } - if ( strcmp(sens, "haut") ==1) { + if ( strcmp(*sens, "haut") ==1) { - p[tete[0] - 1][tete[1]] = 1; + plateau[tete[0] - 1][tete[1]] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[0] = tete[0] -1; } - if ( strcmp(sens, "droite") ==1) { + if ( strcmp(*sens, "droite") ==1) { - p[tete[0]][tete[1] + 1] = 1; + plateau[tete[0]][tete[1] + 1] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[1] = tete[1] + 1; } - if ( strcmp(sens, "gauche") ==1) { + if ( strcmp(*sens, "gauche") ==1) { - p[tete[0]][tete[1] - 1] = 1; + plateau[tete[0]][tete[1] - 1] = 1; - p[queue[0]][queue[1]] = 0; + plateau[queue[0]][queue[1]] = 0; tete[1] = tete[1] - 1; @@ -120,12 +129,11 @@ void deplacement(int** p, int* tete, int* queue) { /* mise à jour de la position de queue dans le plateau */ - maj_queue(queue, p); + maj_queue(queue, plateau); } } - return p; } diff --git a/snake/deplacement.h b/snake/deplacement.h index 06b657c..94c0cc4 100644 --- a/snake/deplacement.h +++ b/snake/deplacement.h @@ -3,6 +3,6 @@ #ifndef DEPLACEMENT_H #define DEPLACEMENT_H -void deplacement (int** p, int* tete, int* queue); +void deplacement (struct adresse* pointeur, char* sens); #endif /* DEPLACEMENT_H */ diff --git a/snake/fenetre.c b/snake/fenetre.c index 57ae857..851142a 100755 --- a/snake/fenetre.c +++ b/snake/fenetre.c @@ -27,7 +27,6 @@ int start (struct adresse* pointeur) { int score=0; - char* num_score = "score : 00000"; diff --git a/snake/lancement b/snake/lancement new file mode 100755 index 0000000..44c21f3 Binary files /dev/null and b/snake/lancement differ diff --git a/snake/main.c b/snake/main.c index b050594..3e27527 100644 --- a/snake/main.c +++ b/snake/main.c @@ -3,9 +3,10 @@ #include <graph.h> #include "fenetre.h" #include "plateau_init.h" +#include "deplacement.h" - +#define CYCLE 1000000L int main(void) { @@ -14,6 +15,23 @@ int main(void) { struct adresse* pointeur = plateau_init(); + char* sens = NULL; + + + unsigned char jeu = 1 ; + + unsigned long suivant; + + sens = malloc(sizeof(char)); + + *sens = "bas"; + + + suivant = Microsecondes() + CYCLE; + + + + InitialiserGraphique(); /*initialisation de la taille de la fenetre de jeux*/ @@ -21,17 +39,41 @@ int main(void) { CreerFenetre(10,10,1450,840); + start(pointeur); - /* while ( jeu = 1) { + while ( jeu = 1) { if (Microsecondes() > suivant) { - deplacement(plateau, tete, queue); + deplacement(pointeur, sens); - }*/ + } + + } + + + + /* déallocations des tableaux */ + + for ( i = 0; i < LIGNES; i++) { + + free(tableau[i]); + + } + + free(pointeur); + + free(tete); + + free(queue); + + free(sens); + + + free(tableau); Touche(); diff --git a/snake/plateau_init.c b/snake/plateau_init.c index 98995ae..e87db1e 100755 --- a/snake/plateau_init.c +++ b/snake/plateau_init.c @@ -94,14 +94,16 @@ struct adresse* plateau_init(void) { plateau[ligne_pomme][colonne_pomme] = 2; - } + } + - pointeur -> plateau = plateau; - pointeur -> tete = tete; - pointeur -> queue = queue; + pointeur -> plateau = plateau; + pointeur -> tete = tete; + pointeur -> queue = queue; + - return pointeur; + return pointeur; } diff --git a/snake/update_queue.h b/snake/update_queue.h index 7100ed0..e565eb6 100644 --- a/snake/update_queue.h +++ b/snake/update_queue.h @@ -4,9 +4,9 @@ #ifndef UPDATE_QUEUE_H #define UPDATE_QUEUE_H -int test_queue(int* queue, int** p) ;* +int test_queue(int* queue, int** p) ; -#enfif /* UPDATE_QUEUE_H */ +#endif /* UPDATE_QUEUE_H */