#include <stdlib.h> #include <stdio.h> #include <graph.h> #include "fenetre.h" #include "plateau_init.h" #include "deplacement.h" #include "score_init.h" #include "ecran_lancement.h" #include "affichage_timer.h" #include "ecran_fin.h" #define CYCLE_SERPENT 200000L #define CYCLE_TIMER 1000000L int main(void) { struct adresse* pointeur = plateau_init(); int** plateau = pointeur -> plateau; short int* compteur = NULL; int i; unsigned short* indice_queue = pointeur -> indice_queue; unsigned char* sens = NULL; unsigned char* retard = NULL; unsigned char* tete = pointeur -> tete; unsigned char jeu, entrer, minutes, secondes; unsigned long suivant_serpent, suivant_timer; unsigned long acceleration = 0L; int numsprite; sens = malloc(sizeof(unsigned char)); *sens = 2; retard = malloc(sizeof(unsigned char)); *retard = 0; suivant_serpent = Microsecondes() + CYCLE_SERPENT; suivant_timer = Microsecondes() + CYCLE_TIMER; InitialiserGraphique(); /*initialisation de la taille de la fenetre de jeux*/ CreerFenetre(10,10,1450,840); /* affichage du l'écran principale */ jeu = ecran_lancement(); if (jeu == 1) { entrer = 1; } numsprite = start(pointeur); compteur = score_init(); minutes = 0; secondes = 0; affichage_timer(minutes, secondes); while (jeu == 1) { if (Microsecondes() > suivant_serpent) { jeu = deplacement(pointeur, sens, retard, compteur, &acceleration, numsprite); suivant_serpent = Microsecondes() + CYCLE_SERPENT - acceleration; } if (Microsecondes () > suivant_timer) { secondes++; suivant_timer = Microsecondes() + CYCLE_TIMER; if (secondes == 60) { secondes = 0; minutes++; } affichage_timer(minutes,secondes); } } LibererSprite(numsprite); /* déallocations des tableaux */ for ( i = 0; i < LIGNES; i++) { free(pointeur -> plateau[i]); } free(pointeur -> plateau); for ( i = 0; i < TAILLE_SERPENT; i++) { free(pointeur -> corps_serpent[i]); } free(pointeur -> corps_serpent); free(pointeur -> tete); free(pointeur -> indice_queue); free(sens); free(pointeur -> taille_serpent); free(pointeur); free(retard); if (entrer == 1 ) { ecran_fin(compteur, minutes, secondes); } FermerGraphique(); return EXIT_SUCCESS; }