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 tempY = serpent[0].y;
|
||||
int i;
|
||||
int compteur;
|
||||
couleur g;
|
||||
couleur j;
|
||||
ChoisirEcran(2);
|
||||
@ -88,7 +87,7 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur)
|
||||
g=CouleurParNom("lightgreen");
|
||||
|
||||
|
||||
for (i = 2; i < longueur; i += 2) {
|
||||
for (i = 1; i < longueur; i++) {
|
||||
int tempX2 = serpent[i].x;
|
||||
int tempY2 = serpent[i].y;
|
||||
|
||||
@ -98,15 +97,8 @@ void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur)
|
||||
tempX = tempX2;
|
||||
tempY = tempY2;
|
||||
}
|
||||
for(i=0;i< longueur; i++)
|
||||
{
|
||||
if(serpent[i].x != NULL && serpent[i].y != NULL)
|
||||
{
|
||||
compteur++;
|
||||
}
|
||||
}
|
||||
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);
|
||||
|
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);
|
||||
/* 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);
|
||||
/* change le titre de la fenetre */
|
||||
@ -34,7 +34,7 @@ void AfficherFenetre(void);
|
||||
|
||||
void ChoisirEcran(int n);
|
||||
/* 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);
|
||||
/* fixe la couleur qui sert au dessin */
|
||||
@ -44,14 +44,14 @@ couleur CouleurParNom(char * nom);
|
||||
contient la liste des couleurs accessibles via leur nom */
|
||||
|
||||
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();
|
||||
/* 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 !!! */
|
||||
|
||||
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 !!! */
|
||||
|
||||
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 */
|
||||
|
||||
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);
|
||||
/* 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 */
|
||||
|
||||
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();
|
||||
/* 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();
|
||||
/* 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 */
|
||||
|
||||
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);
|
||||
/* 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);
|
||||
/* 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);
|
||||
/* 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();
|
||||
/* fermeture du mode graphique */
|
||||
|
||||
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 */
|
||||
|
||||
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 */
|
||||
|
||||
|
||||
/* fonctions a réécrire proprement */
|
||||
/* fonctions a r<EFBFBD><EFBFBD>crire proprement */
|
||||
|
||||
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 */
|
||||
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);
|
||||
/* libere les ressources associées au sprite
|
||||
/* libere les ressources associ<EFBFBD>es au sprite
|
||||
* n */
|
||||
|
||||
#endif
|
||||
|
6
main.c
6
main.c
@ -95,9 +95,9 @@ int main()
|
||||
int n = 0;
|
||||
int m = 0;
|
||||
|
||||
size_t longueur_serpent = 20;
|
||||
size_t longueur_serpent = 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));
|
||||
|
||||
int direction = 0;
|
||||
@ -186,7 +186,7 @@ int main()
|
||||
if(MangerPastille(serpent,pastilles,&score) == 1)
|
||||
{
|
||||
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