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 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 */
|
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*/
|
/* 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*/
|
/*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*/
|
/*-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 */
|
void InitialisationDuSerpent(int *p_serpent) /* L'initialisation du serpent */
|
||||||
{
|
{
|
||||||
int x_millieu = 0, y_millieu = 0 , compteur = 0;
|
int x_millieu = 0, y_millieu = 0 , compteur = 0;
|
||||||
|
couleur o;
|
||||||
couleur j;
|
couleur j;
|
||||||
|
o=CouleurParNom("Gold");
|
||||||
j=CouleurParNom("yellow");
|
j=CouleurParNom("yellow");
|
||||||
ChoisirCouleurDessin(j);
|
ChoisirCouleurDessin(o);
|
||||||
x_millieu = T_PIXEL*30; /* 30 = 60 colonnes divisé par 2*/
|
x_millieu = T_PIXEL*30; /* 30 = 60 colonnes divisé par 2*/
|
||||||
y_millieu = T_PIXEL*20; /* 20 = 40 colonnes divisé par 2*/
|
y_millieu = T_PIXEL*20; /* 20 = 40 colonnes divisé par 2*/
|
||||||
RemplirRectangle(x_millieu,y_millieu,T_PIXEL,T_PIXEL);
|
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;
|
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 */
|
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+2] = p_serpent[compteur]+T_PIXEL;
|
||||||
p_serpent[compteur+3] = p_serpent[compteur+1];
|
p_serpent[compteur+3] = p_serpent[compteur+1];
|
||||||
|
|
||||||
@ -117,14 +142,28 @@ int main()
|
|||||||
int go_on=1;
|
int go_on=1;
|
||||||
int n;
|
int n;
|
||||||
int x_pastille,y_pastille;
|
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();
|
InitialiserGraphique();
|
||||||
CreerFenetre(10,10,W_WINDOW,H_WINDOW); /* Peut être changer cette ligne avec la fonction Maxx et Maxy fournie dans graph.h ??*/
|
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");
|
ChoisirTitreFenetre("SNAKE SAE11 IN C");
|
||||||
DessinerScene(pastilles);
|
DessinerScene(pastilles);
|
||||||
InitialisationDuSerpent(p_serpent);
|
InitialisationDuSerpent(serpent);
|
||||||
|
|
||||||
while(go_on) /* Lancement du cycle pour les Inputs et le Jeu*/
|
while(go_on) /* Lancement du cycle pour les Inputs et le Jeu*/
|
||||||
{
|
{
|
||||||
@ -133,17 +172,21 @@ int main()
|
|||||||
switch (Touche())
|
switch (Touche())
|
||||||
{
|
{
|
||||||
case XK_Up:
|
case XK_Up:
|
||||||
printf("Touche haut\n");
|
direction = 1;
|
||||||
break;
|
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||||
case XK_Down:
|
break;
|
||||||
printf("Touche bas\n");
|
case XK_Down:
|
||||||
break;
|
direction = 3;
|
||||||
case XK_Left:
|
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||||
printf("Touche gauche\n");
|
break;
|
||||||
break;
|
case XK_Left:
|
||||||
case XK_Right:
|
direction = 0;
|
||||||
printf("Touche droite\n");
|
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||||
break;
|
break;
|
||||||
|
case XK_Right:
|
||||||
|
direction = 2;
|
||||||
|
DeplacementSerpent(direction ,serpent, longueur_serpent);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("Autre touche\n");
|
printf("Autre touche\n");
|
||||||
@ -156,6 +199,7 @@ int main()
|
|||||||
{
|
{
|
||||||
n++;
|
n++;
|
||||||
suivant=Microsecondes()+delta;
|
suivant=Microsecondes()+delta;
|
||||||
|
DeplacementSerpent(direction,serpent,longueur_serpent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user