178 lines
2.4 KiB
C
Raw Permalink Normal View History

#include <stdlib.h>
#include <stdio.h>
2023-12-10 22:51:36 +01:00
#include <graph.h>
#include "fenetre.h"
#include "plateau_init.h"
2023-12-12 17:39:55 +01:00
#include "deplacement.h"
#include "score_init.h"
2023-12-20 00:09:59 +01:00
#include "ecran_lancement.h"
2023-12-24 20:21:24 +01:00
#include "affichage_timer.h"
#include "ecran_fin.h"
2023-12-10 23:03:16 +01:00
2023-12-10 00:36:22 +01:00
2023-12-24 20:21:24 +01:00
#define CYCLE_SERPENT 200000L
#define CYCLE_TIMER 1000000L
int main(void) {
2023-12-11 16:19:17 +01:00
struct adresse* pointeur = plateau_init();
2023-12-11 16:19:17 +01:00
int** plateau = pointeur -> plateau;
2023-12-13 17:00:25 +01:00
short int* compteur = NULL;
2023-12-24 20:21:24 +01:00
int i;
2023-12-11 16:19:17 +01:00
2023-12-12 17:27:44 +01:00
unsigned short* indice_queue = pointeur -> indice_queue;
2023-12-15 20:14:39 +01:00
2023-12-12 19:55:28 +01:00
unsigned char* sens = NULL;
unsigned char* retard = NULL;
2023-12-12 17:39:55 +01:00
2023-12-15 20:14:39 +01:00
unsigned char* tete = pointeur -> tete;
2023-12-12 17:39:55 +01:00
2023-12-24 20:21:24 +01:00
unsigned char jeu, entrer, minutes, secondes;
2023-12-12 17:39:55 +01:00
2023-12-24 20:21:24 +01:00
unsigned long suivant_serpent, suivant_timer;
2023-12-12 17:39:55 +01:00
unsigned long acceleration = 0L;
2023-12-24 20:21:24 +01:00
int numsprite;
2023-12-13 17:00:25 +01:00
2023-12-12 19:55:28 +01:00
sens = malloc(sizeof(unsigned char));
2023-12-12 17:39:55 +01:00
2023-12-12 19:55:28 +01:00
*sens = 2;
2023-12-12 17:39:55 +01:00
retard = malloc(sizeof(unsigned char));
*retard = 0;
2023-12-12 17:39:55 +01:00
2023-12-24 20:21:24 +01:00
suivant_serpent = Microsecondes() + CYCLE_SERPENT;
suivant_timer = Microsecondes() + CYCLE_TIMER;
2023-12-12 17:39:55 +01:00
2023-12-12 17:43:07 +01:00
2023-12-11 16:19:17 +01:00
InitialiserGraphique();
2023-12-10 00:36:22 +01:00
/*initialisation de la taille de la fenetre de jeux*/
CreerFenetre(10,10,1450,840);
2023-12-07 11:16:30 +01:00
2023-12-20 00:09:59 +01:00
/* affichage du l'écran principale */
2023-12-07 11:16:30 +01:00
2023-12-20 00:09:59 +01:00
jeu = ecran_lancement();
2023-12-12 17:39:55 +01:00
2023-12-24 20:21:24 +01:00
if (jeu == 1) {
entrer = 1;
}
2023-12-13 17:00:25 +01:00
numsprite = start(pointeur);
2023-12-13 17:00:25 +01:00
compteur = score_init();
2023-12-24 20:21:24 +01:00
minutes = 0;
2023-12-24 20:21:24 +01:00
secondes = 0;
2023-12-11 16:19:17 +01:00
2023-12-24 20:21:24 +01:00
affichage_timer(minutes, secondes);
2023-12-11 16:19:17 +01:00
2023-12-24 20:21:24 +01:00
while (jeu == 1) {
2023-12-24 20:21:24 +01:00
if (Microsecondes() > suivant_serpent) {
2023-12-15 20:14:39 +01:00
jeu = deplacement(pointeur, sens, retard, compteur, &acceleration, numsprite);
2023-12-11 16:19:17 +01:00
2023-12-24 20:21:24 +01:00
suivant_serpent = Microsecondes() + CYCLE_SERPENT - acceleration;
2023-12-13 19:29:11 +01:00
2023-12-11 16:19:17 +01:00
}
2023-12-12 17:39:55 +01:00
2023-12-24 20:21:24 +01:00
if (Microsecondes () > suivant_timer) {
secondes++;
suivant_timer = Microsecondes() + CYCLE_TIMER;
if (secondes == 60) {
secondes = 0;
minutes++;
}
affichage_timer(minutes,secondes);
}
}
2023-12-12 17:39:55 +01:00
2023-12-24 20:21:24 +01:00
LibererSprite(numsprite);
2023-12-12 17:39:55 +01:00
/* déallocations des tableaux */
for ( i = 0; i < LIGNES; i++) {
free(pointeur -> plateau[i]);
2023-12-12 17:39:55 +01:00
}
free(pointeur -> plateau);
2023-12-12 17:39:55 +01:00
for ( i = 0; i < TAILLE_SERPENT; i++) {
free(pointeur -> corps_serpent[i]);
}
free(pointeur -> corps_serpent);
2023-12-12 19:55:28 +01:00
free(pointeur -> tete);
2023-12-12 17:39:55 +01:00
free(pointeur -> indice_queue);
free(sens);
2023-12-12 17:39:55 +01:00
free(pointeur -> taille_serpent);
2023-12-12 17:39:55 +01:00
2023-12-12 19:55:28 +01:00
free(pointeur);
2023-12-10 00:36:22 +01:00
2023-12-13 17:00:25 +01:00
2023-12-24 20:21:24 +01:00
free(retard);
2023-12-24 20:21:24 +01:00
if (entrer == 1 ) {
2023-12-12 17:27:44 +01:00
2023-12-24 20:21:24 +01:00
ecran_fin(compteur, minutes, secondes);
2023-12-12 17:27:44 +01:00
2023-12-24 20:21:24 +01:00
}
2023-12-12 17:27:44 +01:00
FermerGraphique();
2023-12-12 17:27:44 +01:00
return EXIT_SUCCESS;
}