debug struct serpent
This commit is contained in:
parent
ee032fe2e9
commit
15a99a4583
12
evenement.c
12
evenement.c
@ -80,7 +80,6 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur)
|
|||||||
int tempX = serpent[0].x;
|
int tempX = serpent[0].x;
|
||||||
int tempY = serpent[0].y;
|
int tempY = serpent[0].y;
|
||||||
int i;
|
int i;
|
||||||
int compteur;
|
|
||||||
couleur g;
|
couleur g;
|
||||||
couleur j;
|
couleur j;
|
||||||
ChoisirEcran(2);
|
ChoisirEcran(2);
|
||||||
@ -88,7 +87,7 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur)
|
|||||||
g=CouleurParNom("lightgreen");
|
g=CouleurParNom("lightgreen");
|
||||||
|
|
||||||
|
|
||||||
for (i = 2; i < longueur; i += 2) {
|
for (i = 1; i < longueur; i++) {
|
||||||
int tempX2 = serpent[i].x;
|
int tempX2 = serpent[i].x;
|
||||||
int tempY2 = serpent[i].y;
|
int tempY2 = serpent[i].y;
|
||||||
|
|
||||||
@ -98,15 +97,8 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur)
|
|||||||
tempX = tempX2;
|
tempX = tempX2;
|
||||||
tempY = tempY2;
|
tempY = tempY2;
|
||||||
}
|
}
|
||||||
for(i=0;i< longueur; i++)
|
|
||||||
{
|
|
||||||
if(serpent[i].x != NULL && serpent[i].y != NULL)
|
|
||||||
{
|
|
||||||
compteur++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ChoisirCouleurDessin(g);
|
ChoisirCouleurDessin(g);
|
||||||
RemplirRectangle(serpent[compteur].x,serpent[compteur].y,T_PIXEL,T_PIXEL);
|
RemplirRectangle(serpent[longueur-1].x,serpent[longueur-1].y,T_PIXEL,T_PIXEL);
|
||||||
|
|
||||||
|
|
||||||
ChoisirCouleurDessin(j);
|
ChoisirCouleurDessin(j);
|
||||||
|
BIN
evenement.o
BIN
evenement.o
Binary file not shown.
34
graph.h
34
graph.h
@ -18,7 +18,7 @@ int InitialiserGraphique();
|
|||||||
|
|
||||||
int CreerFenetre(int posx,int posy,int X,int Y);
|
int CreerFenetre(int posx,int posy,int X,int Y);
|
||||||
/* creer la fenetre graphique de largeur X et longueur Y, et la positionne
|
/* creer la fenetre graphique de largeur X et longueur Y, et la positionne
|
||||||
sur l'ecran au point (posx,posy). Une seule fenetre autorisée */
|
sur l'ecran au point (posx,posy). Une seule fenetre autoris<EFBFBD>e */
|
||||||
|
|
||||||
void ChoisirTitreFenetre(char *s);
|
void ChoisirTitreFenetre(char *s);
|
||||||
/* change le titre de la fenetre */
|
/* change le titre de la fenetre */
|
||||||
@ -34,7 +34,7 @@ void AfficherFenetre(void);
|
|||||||
|
|
||||||
void ChoisirEcran(int n);
|
void ChoisirEcran(int n);
|
||||||
/* fixe l'ecran ou le dessin est effectue : cette ecran est soit 0 (la fenetre
|
/* fixe l'ecran ou le dessin est effectue : cette ecran est soit 0 (la fenetre
|
||||||
visible, ecran par defaut au demarrage), soit le numero de l'écran virtuel correspondant */
|
visible, ecran par defaut au demarrage), soit le numero de l'<EFBFBD>cran virtuel correspondant */
|
||||||
|
|
||||||
void ChoisirCouleurDessin(couleur c);
|
void ChoisirCouleurDessin(couleur c);
|
||||||
/* fixe la couleur qui sert au dessin */
|
/* fixe la couleur qui sert au dessin */
|
||||||
@ -44,14 +44,14 @@ couleur CouleurParNom(char * nom);
|
|||||||
contient la liste des couleurs accessibles via leur nom */
|
contient la liste des couleurs accessibles via leur nom */
|
||||||
|
|
||||||
couleur CouleurParComposante(unsigned char r, unsigned char v,unsigned char b);
|
couleur CouleurParComposante(unsigned char r, unsigned char v,unsigned char b);
|
||||||
/* renvoie la couleur définie par ses trois composantes */
|
/* renvoie la couleur d<EFBFBD>finie par ses trois composantes */
|
||||||
|
|
||||||
int Maxx();
|
int Maxx();
|
||||||
/* renvoie la largeur de l'ecran : il faut que le mode graphique ait été
|
/* renvoie la largeur de l'ecran : il faut que le mode graphique ait <EFBFBD>t<EFBFBD>
|
||||||
initialise !!! */
|
initialise !!! */
|
||||||
|
|
||||||
int Maxy();
|
int Maxy();
|
||||||
/* renvoie la hauteur de l'ecran : il faut que le mode graphique ait été
|
/* renvoie la hauteur de l'ecran : il faut que le mode graphique ait <EFBFBD>t<EFBFBD>
|
||||||
initialise !!! */
|
initialise !!! */
|
||||||
|
|
||||||
void DessinerPixel(int x,int y);
|
void DessinerPixel(int x,int y);
|
||||||
@ -61,7 +61,7 @@ void DessinerSegment(int x,int y,int xx,int yy);
|
|||||||
/* idem precedent, mais avec la couleur de dessin */
|
/* idem precedent, mais avec la couleur de dessin */
|
||||||
|
|
||||||
void DessinerSegments(Point * sommets,int nb_sommets);
|
void DessinerSegments(Point * sommets,int nb_sommets);
|
||||||
/* trace pour chaque paire sommet[i],sommet[i+1] le segment correspondant. Si le deux extrémités correspondent, le polygone est fermé */
|
/* trace pour chaque paire sommet[i],sommet[i+1] le segment correspondant. Si le deux extr<EFBFBD>mit<EFBFBD>s correspondent, le polygone est ferm<72> */
|
||||||
|
|
||||||
void DessinerRectangle(int x,int y,int l,int h);
|
void DessinerRectangle(int x,int y,int l,int h);
|
||||||
/* idem, mais utilise la couleur de dessin */
|
/* idem, mais utilise la couleur de dessin */
|
||||||
@ -79,11 +79,11 @@ void RemplirTriangle(int x,int y,int xx,int yy,int xxx,int yyy);
|
|||||||
/* trace un triangle plein */
|
/* trace un triangle plein */
|
||||||
|
|
||||||
void RemplirPolygone(Point * sommets,int nb_sommet);
|
void RemplirPolygone(Point * sommets,int nb_sommet);
|
||||||
/* Trace un polygone plein défini par son tableau de sommets. Si les extremités ne coincident pas, le polygone est fermé automatiquement.
|
/* Trace un polygone plein d<EFBFBD>fini par son tableau de sommets. Si les extremit<69>s ne coincident pas, le polygone est ferm<72> automatiquement.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ToucheEnAttente();
|
int ToucheEnAttente();
|
||||||
/* renvoie 1 si une touche a été enfoncée, 0 sinon */
|
/* renvoie 1 si une touche a <EFBFBD>t<EFBFBD> enfonc<6E>e, 0 sinon */
|
||||||
|
|
||||||
KeySym Touche();
|
KeySym Touche();
|
||||||
/* renvoie la premiere touche du tampon : cette fonction est bloquante =>
|
/* renvoie la premiere touche du tampon : cette fonction est bloquante =>
|
||||||
@ -110,22 +110,22 @@ void ChoisirModeDessin(int m);
|
|||||||
/* fixe le mode d'affichage : 0<->ecrasement 1<->xor */
|
/* fixe le mode d'affichage : 0<->ecrasement 1<->xor */
|
||||||
|
|
||||||
int TailleChaineEcran(char *t,int taile);
|
int TailleChaineEcran(char *t,int taile);
|
||||||
/* renvoie, en pixel, la taille horizontale occupee par la chaine à l'écran :taille est la taille de la police (0,1,2) */
|
/* renvoie, en pixel, la taille horizontale occupee par la chaine <EFBFBD> l'<27>cran :taille est la taille de la police (0,1,2) */
|
||||||
|
|
||||||
int TailleSupPolice(int taille);
|
int TailleSupPolice(int taille);
|
||||||
/* renvoie la taiile maximale de la police, en pixel, au dessus de la ligne d'écriture */
|
/* renvoie la taiile maximale de la police, en pixel, au dessus de la ligne d'<EFBFBD>criture */
|
||||||
|
|
||||||
int TailleInfPolice(int taille);
|
int TailleInfPolice(int taille);
|
||||||
/* renvoie la taille maximale de la police, en pixel, en dessous de la ligne d'écriture */
|
/* renvoie la taille maximale de la police, en pixel, en dessous de la ligne d'<EFBFBD>criture */
|
||||||
|
|
||||||
void CopierZone(int src,int dst,int ox,int oy,int L,int H,int dx,int dy);
|
void CopierZone(int src,int dst,int ox,int oy,int L,int H,int dx,int dy);
|
||||||
/* copie une zone de l'écran vers l'écran dst. La zone copiée est le rectangle delimite par le coin superieure hauche (ox,oy) et sa largeur l et hauteur h. Cette zone est copié au point (dx,dy) de l'ecran dst */
|
/* copie une zone de l'<EFBFBD>cran vers l'<27>cran dst. La zone copi<70>e est le rectangle delimite par le coin superieure hauche (ox,oy) et sa largeur l et hauteur h. Cette zone est copi<EFBFBD> au point (dx,dy) de l'ecran dst */
|
||||||
|
|
||||||
void FermerGraphique();
|
void FermerGraphique();
|
||||||
/* fermeture du mode graphique */
|
/* fermeture du mode graphique */
|
||||||
|
|
||||||
unsigned long Microsecondes();
|
unsigned long Microsecondes();
|
||||||
/* renvoie le nombre de microsecondes ecoulées depuis le
|
/* renvoie le nombre de microsecondes ecoul<EFBFBD>es depuis le
|
||||||
lancement du programme */
|
lancement du programme */
|
||||||
|
|
||||||
void SourisPosition();
|
void SourisPosition();
|
||||||
@ -135,15 +135,15 @@ int SourisCliquee();
|
|||||||
/* indique un clic de souris (1 si oui, 0 sinon), et recupere si c'est le cas la position au moment du clic dans _X et _Y */
|
/* indique un clic de souris (1 si oui, 0 sinon), et recupere si c'est le cas la position au moment du clic dans _X et _Y */
|
||||||
|
|
||||||
|
|
||||||
/* fonctions a réécrire proprement */
|
/* fonctions a r<EFBFBD><EFBFBD>crire proprement */
|
||||||
|
|
||||||
int ChargerSprite(char *file);
|
int ChargerSprite(char *file);
|
||||||
/* charge un srpite en mémoire, et renvoie son numéro
|
/* charge un srpite en m<EFBFBD>moire, et renvoie son num<75>ro
|
||||||
* -1 en cas d'echec */
|
* -1 en cas d'echec */
|
||||||
void AfficherSprite(int n,int x,int y);
|
void AfficherSprite(int n,int x,int y);
|
||||||
/* affiche le sprite correspondant à son numéro */
|
/* affiche le sprite correspondant <EFBFBD> son num<75>ro */
|
||||||
void LibererSprite(int n);
|
void LibererSprite(int n);
|
||||||
/* libere les ressources associées au sprite
|
/* libere les ressources associ<EFBFBD>es au sprite
|
||||||
* n */
|
* n */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
6
main.c
6
main.c
@ -95,9 +95,9 @@ int main()
|
|||||||
int n = 0;
|
int n = 0;
|
||||||
int m = 0;
|
int m = 0;
|
||||||
|
|
||||||
size_t longueur_serpent = 20;
|
size_t longueur_serpent = 10;
|
||||||
size_t longueur_pastilles = 10;
|
size_t longueur_pastilles = 10;
|
||||||
int *serpent = (int *)malloc(longueur_serpent * sizeof(int));
|
PIXELS *serpent = (PIXELS *)malloc(longueur_serpent * sizeof(PIXELS));
|
||||||
PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS));
|
PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS));
|
||||||
|
|
||||||
int direction = 0;
|
int direction = 0;
|
||||||
@ -186,7 +186,7 @@ int main()
|
|||||||
if(MangerPastille(serpent,pastilles,&score) == 1)
|
if(MangerPastille(serpent,pastilles,&score) == 1)
|
||||||
{
|
{
|
||||||
longueur_serpent+=2;
|
longueur_serpent+=2;
|
||||||
serpent = (int*) realloc(serpent,longueur_serpent * sizeof(int));
|
serpent = (PIXELS*) realloc(serpent,longueur_serpent * sizeof(PIXELS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BIN
main.o
BIN
main.o
Binary file not shown.
BIN
prog
BIN
prog
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user