Ajout de tableaux dynamiques et améliorations DeplacementSerpent()
This commit is contained in:
parent
99c2c072d8
commit
a8ffbad3da
78
main.c
78
main.c
@ -13,8 +13,30 @@
|
||||
|
||||
#define DECALEMENT 30
|
||||
|
||||
#define delta 10000L
|
||||
#define delta 1000000L
|
||||
|
||||
void DeplacementSerpent(int direction ,int *serpent, int longueur)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
|
||||
if(direction == 0) /* Direction vers la gauche */
|
||||
{
|
||||
printf("Gauche %d\n",direction);
|
||||
}
|
||||
else if(direction == 1) /* Direction vers le haut */
|
||||
{
|
||||
printf("Haut %d\n",direction);
|
||||
}
|
||||
else if(direction == 2) /* Direction vers la droite */
|
||||
{
|
||||
printf("Droite %d\n",direction);
|
||||
}
|
||||
else if(direction == 3) /* Direction vers le bas */
|
||||
{
|
||||
printf("Bas %d\n",direction);
|
||||
}
|
||||
}
|
||||
|
||||
int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respecter la norme des 40 lignes et 60 colonnes */
|
||||
{
|
||||
@ -31,7 +53,7 @@ void gen_pastille(int nb_pastille, int *p_pastilles) /* Ajout des pointeurs pour
|
||||
|
||||
/* nb_pastille = int nombre de pastille voulue , p_pastilles est un pointeur d'un tableau de pixels qui sont des pastilles*/
|
||||
/*Générer une pastille dans la grid*/
|
||||
/*Seulement le code n'est pas complet*/
|
||||
/*Code n'est pas complet*/
|
||||
/*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/
|
||||
|
||||
{
|
||||
@ -88,9 +110,11 @@ void DessinerScene(int* pastilles) /* Dessine la scène */
|
||||
void InitialisationDuSerpent(int *p_serpent) /* L'initialisation du serpent */
|
||||
{
|
||||
int x_millieu = 0, y_millieu = 0 , compteur = 0;
|
||||
couleur o;
|
||||
couleur j;
|
||||
o=CouleurParNom("Gold");
|
||||
j=CouleurParNom("yellow");
|
||||
ChoisirCouleurDessin(j);
|
||||
ChoisirCouleurDessin(o);
|
||||
x_millieu = T_PIXEL*30; /* 30 = 60 colonnes divisé par 2*/
|
||||
y_millieu = T_PIXEL*20; /* 20 = 40 colonnes divisé par 2*/
|
||||
RemplirRectangle(x_millieu,y_millieu,T_PIXEL,T_PIXEL);
|
||||
@ -101,6 +125,7 @@ void InitialisationDuSerpent(int *p_serpent) /* L'initialisation du serpent */
|
||||
p_serpent[1] = y_millieu;
|
||||
for(compteur=0;compteur<=18;compteur+=2) /* Commence par 1 car p_serpent index 0 initialisées pour la tête et 2 + 2x9 = 10 couples de coordonnées 2D */
|
||||
{
|
||||
ChoisirCouleurDessin(j);
|
||||
p_serpent[compteur+2] = p_serpent[compteur]+T_PIXEL;
|
||||
p_serpent[compteur+3] = p_serpent[compteur+1];
|
||||
|
||||
@ -117,14 +142,28 @@ int main()
|
||||
int go_on=1;
|
||||
int n;
|
||||
int x_pastille,y_pastille;
|
||||
int p_serpent[100]; /* A faire en tableau dynamique*/
|
||||
int pastilles[5]; /* A faire en tableau dynamique */
|
||||
|
||||
size_t longueur_serpent = 20;
|
||||
size_t longueur_pastilles = 10;
|
||||
int *serpent = (int *)malloc(longueur_serpent * sizeof(int));
|
||||
int *pastilles = (int *)malloc(longueur_pastilles * sizeof(int));
|
||||
int direction = 0;
|
||||
|
||||
if(serpent == NULL) {
|
||||
fprintf(stderr, "Erreur d'allocation de mémoire.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if(pastilles == NULL) {
|
||||
fprintf(stderr, "Erreur d'allocation de mémoire.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(10,10,W_WINDOW,H_WINDOW); /* Peut être changer cette ligne avec la fonction Maxx et Maxy fournie dans graph.h ??*/
|
||||
ChoisirTitreFenetre("SNAKE SAE11 IN C");
|
||||
DessinerScene(pastilles);
|
||||
InitialisationDuSerpent(p_serpent);
|
||||
InitialisationDuSerpent(serpent);
|
||||
|
||||
while(go_on) /* Lancement du cycle pour les Inputs et le Jeu*/
|
||||
{
|
||||
@ -133,17 +172,21 @@ int main()
|
||||
switch (Touche())
|
||||
{
|
||||
case XK_Up:
|
||||
printf("Touche haut\n");
|
||||
break;
|
||||
case XK_Down:
|
||||
printf("Touche bas\n");
|
||||
break;
|
||||
case XK_Left:
|
||||
printf("Touche gauche\n");
|
||||
break;
|
||||
case XK_Right:
|
||||
printf("Touche droite\n");
|
||||
break;
|
||||
direction = 1;
|
||||
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||
break;
|
||||
case XK_Down:
|
||||
direction = 3;
|
||||
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||
break;
|
||||
case XK_Left:
|
||||
direction = 0;
|
||||
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||
break;
|
||||
case XK_Right:
|
||||
direction = 2;
|
||||
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Autre touche\n");
|
||||
@ -156,6 +199,7 @@ int main()
|
||||
{
|
||||
n++;
|
||||
suivant=Microsecondes()+delta;
|
||||
DeplacementSerpent(direction,serpent,longueur_serpent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user