From 15a99a458379e9e5b9d1d0691835a0df720976d6 Mon Sep 17 00:00:00 2001
From: akagunduz <david.akagunduz@gmail.com>
Date: Tue, 12 Dec 2023 16:03:47 +0100
Subject: [PATCH] debug struct serpent

---
 evenement.c |  12 ++----------
 evenement.o | Bin 4472 -> 4392 bytes
 graph.h     |  34 +++++++++++++++++-----------------
 main.c      |   6 +++---
 main.o      | Bin 5168 -> 5160 bytes
 prog        | Bin 16808 -> 16808 bytes
 6 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/evenement.c b/evenement.c
index c57047d..1e0e6ab 100644
--- a/evenement.c
+++ b/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);
diff --git a/evenement.o b/evenement.o
index 1b345846774145c9c460cfc90358656e76caef87..8e1a245400ed1c3bb12b23c939c0b71705439b15 100644
GIT binary patch
delta 744
zcmZvYO=uHQ5XaxV-F%cJn@zQD0!pP7Q%|ugQbcg0@?eh%c&G=#gCJOiT&ff-6(hp(
z2(-?@uZ!Mt@FK-S5uqw#4+_bxhln}k5V4ouawzD`HcLe^FmLD0|2O~l_6??*Q>!!3
ze0%DSgwOa?PN!Z9A$+a2b;ZP2asq$I0M6h|V<y$1_NFeIf$HK5!(HhCp}+5H)$^bE
zjl*AP$CH~rw6q9Rf26?UJ0p}&T6F?BTIdFsOs)EX>S(n?r`J^vv~qjr)z<xobmG7d
zzV`Wat+wbYAG?O%s0^a3)M$3t#tpONxGZSVsO)kP*x|Nj;&RNH{`Hz%>dW6?aW-t1
z%?PWQ2VDNxEn?(iDQuBbmWzL#@{?zYFop!X>>~#*A7Tq}zOoQlj6a{7<hQ(N*^lMr
zOkC9sV*=8Nq!34`{fH?FOVScC#+W1k!78lViB%|s2Bfzr#{~%2pn}3$-$*(JyvKIR
zDeSQWg-K~s?)}-1YY1tlaAP>a5SNj98)r$q_n&%_2#%FdJ;Ih0{NewKX0PB{+JWo1
zlrF*du$H(>opZe6@ytB9xRm(`WxQ(5!91>69z4KyxaP84SF_&OyBK@ZYak>J;hXFU
nXcJS!K{hY9V>oVKfFxFJPqxzdgf>lV+aA;~m-FB>R&&L_r^)75

delta 849
zcmZ`$O=uHA6rMM`U0b@zu0Obm6wxS};K5J`6@|no1AELtq=JGJK|F{TBO)y|t`(Lw
z5O|05AQf-DhJxTlHaS=i9&%BG6pYYAFui!&Lm|G|xJByv;Jul7-_O3;S<eKSMizor
z?mmYP*yN}5HO83jiJtBFDz0%0zi}7xct^=j_o(lCmsMA6VN;o1?sMV}7d_FpSMB<d
z6*@_&Z$sB(t{98~$A=hjCq~tw&$|3SDgw78IB-SJ6FW4+vLpJEeMx*YUOpa;Mw_B9
zM;K;eylJ8p|Do!LZ6FzpWs6^E+`x7>2U6#WZMsLh&+U3;H@Zju?`{xv**k+V^wi_W
z3bN&~dgYhgxMs+pU+3k~S5xQSlCQJ$391+OfIW)y)7ZziP7WUtn^$KeS0l#N$_<Oe
zQmPkXJUjn*;?l%5>`koBWq^h$C(Rf9YC;o^qNG4SFv-{qwVzYUSddQ|ag<w}2-r%b
zH+-!D>Ck}iF6AKxtf0__VqxRnq@}=ntW8_#k#wL?DNV{<dKekEu|??JKN3lj+X#Jt
zKL~xY4?RN+8P6mN*YSpaKK)u6Q^-Z5j2u2=S+^jCZ>Uzn+K?5y`aBdcm-r4%oJ!8Y
zI+l|q_=>f#w!;cWX-b!76f@Y;4&zPZG|y^u^`q!(D!v*YJ4O-a5zG=lk-#fv5dy54
OCGfFL^(n%^v%dk+4H>Ke

diff --git a/graph.h b/graph.h
index 8244e09..0a64fe3 100644
--- a/graph.h
+++ b/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�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'�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�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 �t� 
    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 �t� 
    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�mit�s correspondent, le polygone est ferm� */
 
 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�fini par son tableau de sommets. Si les extremit�s ne coincident pas, le polygone est ferm� automatiquement.
 */
 
 int ToucheEnAttente();
-/* renvoie 1 si une touche a �t� enfonc�e, 0 sinon */
+/* renvoie 1 si une touche a �t� enfonc�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 � l'�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'�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'�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'�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 */ 
 
 void FermerGraphique();
 /* fermeture du mode graphique */
 
 unsigned long Microsecondes();
-/* renvoie le nombre de microsecondes ecoul�es depuis le
+/* renvoie le nombre de microsecondes ecoul�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��crire proprement */
 
 int ChargerSprite(char *file);
-/* charge un srpite en m�moire, et renvoie son num�ro 
+/* charge un srpite en m�moire, et renvoie son num�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 � son num�ro */
 void LibererSprite(int n);
-/* libere les ressources associ�es au sprite
+/* libere les ressources associ�es au sprite
  * n */
 
 #endif
diff --git a/main.c b/main.c
index 9ec439e..871d46f 100644
--- a/main.c
+++ b/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));
                 }
 	            }
             }
diff --git a/main.o b/main.o
index 3e469479cc9a309d40e7d1ef3cf5b750076721b2..3c504eb2d461cbcfbeade333781c2ace13c28edd 100644
GIT binary patch
delta 772
zcmZ9IOK1~O6o%*AiD{-Lnang~I=GPHX53i2P^k-JE757G_<%@P;$veGY%5aSC`v#H
zL&f@UbY(>-5jTn5h#RX=LIv>w1qH!&rw~xVg-XSqJDGu751jk>zw_U7xOK1Q-S()~
z*nW+61?8XBqlspzrEz?%^AeO={#}1MzbF+yD1GqhZIElLl?C#r(~DT8LixXna?3ya
z-mkor1<P$~nXRva{fX*eLa}drcw!^MVbPPK%9WO3-a3dWQO|eEDVn7(;V!3nv7*oK
z)tkZ);cz?#I+Mq7D!FEk5El<*b2r3+Oj19D^BsR_1Y@aj>c_`aFU`#x#v7fs;aJ9@
zBlwYa+!I31s%di5qm=iP=*c+lg@`6tF*w)$wd1CI!G%II3cZi(O#dj<RA?3r?!E(7
z)}cYH@_85od_EH@Q=xKID()RQ5Qpq;bH?2tW0L8Uh{luemZcoe@PO%S#hYd|_I|=U
zrr#7=P-q@xI_|km@|||yZr)?>#gN`psH@OAPP2Dep<5LC8#AUuHXfPdZh!PMv&?14
ztIRp{<vvq4ENhSWwHd?KJ~5g^qoaUX%ZraImPey7>>@qHkX;ndqYB%j1uU`r9Y$A?
ao??jC8mhcr#!^?&*qM{PH0=^*tgY)Mx#>9o

delta 740
zcmZ{hK}Zx~6vyX%v#q<ayECJs(}ovMt|!fddeLQ#iHRUK!;t8p37rDbLx(_cT~?4`
z#rRWs@ep0Y4((!ejGZnUUTQnpCGA$Qm(W88&EB`mz-Q10-=B~7d;kA?%)H7}GMgEy
zR0mdQ%q!<3zI(hb>TXlx^Rvq0yG?J)E88Vm@qBmRqtCwCt`=*;D<?|$Mm=|mHTt(}
zy6Me-@roaGZhG3bPqTf`*VaWC!0deVP)Io1F5$Z9i;3cL(=;|*EQyM3%QfomkBi|t
z!J*h4(d!}}X>BJ>(dbk}&cjUf#K;rBaw&67Tunyx8<_7nr99?h3p9>KY>;+#DgH^P
zel!wJ`nHfhO_O#x;pD7+?t+p|`o2PA3SGjLq(i<;py!z5&X-DOhtl~6PndS<T;e0A
z7<|Ji!w5L%8v0TW-NY|`KWJ4Rw<@cx$}`+bIq5e_LYI>84h5#~6)L}1nBPE^>7hcq
z6?%m4OfOyF5+Avn!#DIkgk?DCNB^PQ$T5AZ(94SVD;AlaDzsOjJ$PZrpJAB}?O?z>
zpkBnSQK2O;X-&{Q6s#<3z&Z=+%+hP*SnDXTeni0f8`PDh8gi@^6j)afu#SQ3{=XxL
B^mzaP

diff --git a/prog b/prog
index eeb593113de4ef0b8874c3d59522c4b44afafc9d..746595a165b7ff2602e890d667e3f81e5bbc3f14 100755
GIT binary patch
delta 1736
zcmaKsduSY06o==|&Ni<myREy)KDv3Dnx>|~CXqr^Vs+XfHtm)YUm$23|4<1@zy!pE
zEshn3aoaSPqGGBPid3bvb`fg{d529zG?A(mf+RG>4c&&sH0fG}@poqOXld-i-p4uT
zJLlYc?wK<xJEOAm$t-m;T`+%>>5+}BMRYwqQZu;s#{9PE$?VRn&(zdZPoJ%iblQw`
zb~w_xVVCIFYj0{nDJsVan?8?0m*dJuO4v2j;c|zV5?((<Dn*yCC~R2mcWBNPi&e#_
zUK>{q{j8|{MEqhYYC(LjS4rAV$wJg#XkB;s8`T^CUnP9!@WIg~2L>$~YyZbER5{Mn
zws?x;=q`TF708wTH4G(ee=H3N!sHv6D4Lu=vI%p~<1UZ)VUp@{j3ncdd6WrSSMz{-
zXGto&D^WRS&UDDW2^(osEMF5Qxg=ZQAGmW~b#J9;eV6h;b~D1m_E&%t^%|&)B%A(H
zghXwd6`D&F-9A}-FGHb;saRoJz+40@#P)M%rpKAMZ65D|CBrZHj?6sQa}cTt<~ZU<
z9LxIMNPXsmjQzwrvR-0Md^T${JIk{?1zyoC+v=6$+`m%D8GgW1;Hyp`Sqi7<wTU`q
ztE;dGn>X#TCf@ET-*PO;%5U%%-RcpKLDy(aaM2BE51lkN#cz0uSS8Q&=I_V{(_Kd{
zwWyWb;-X>bCnSQya=SLBgx!vNjK+AQH^8p)qh6mlyvS!ffkW^iSpGxsps0h+b}B2<
zl$O)XL<%DVwTgD_fTG5W6s_$FO7Ye@EA96Q(@^%M($l_&yvFu|!wLT6#lDA<-o_;;
znvFO3+`Qgb$Uf!VS6+C*ZaL{&xZ4Tsqw*BFnI7PAUqRX@Skf))L5T<ak0!O6w`Jo^
zem8IM7qZXz3IAqR#=HDQp>Y`YQbWiSJt(yh`{O3uhwU%Yt3*b}XsgMy5H&4{S}jom
zLFuxux9IYe)t=Z<;9iA|>H^NWrh;O{mo=f~&I8l0%j253thrk;VK!_`lgH7v$W=vb
zSXRozt?wYB*;)(pD62e-RH!$?LFzd(6>8`;#As%LX9rS4y8*&>md^VX)@s`iLi2W_
zbs-#_qlM-)w~dk|1-beaNCq-}3IcGf`4Q8iN?Hbk7P2P!<6nkx{q+zyvANXp91c2Y
zald#U6IB7owggcyi@IO1gTUHH29W2xBl|X9XEI)JGWL<m>><Vvr#;`1+qI<_#mz-o
zKg3*xIR$U=Wz2Pd8^&SGo6zc~F<0_yx#t3Vuo9lkaK0x#mA=llo2^eu7B)fDg}=zZ
z&dXu@_!!1hd=BF{-;iHW*$9t0cXG07v$;*wWb2@N1JN?*Ij;Cl5#c-1l)o>Hcb8O)
zmjjX1ZO=-W`N8coDW~bHj9(6ap{#*j;3H+Xyk>5Y?SY?-LWVHlH%){L{(Jei>^MJO
hQOa_7AI5lOuHv^Owx5qYUYdG2V3{F;_{8V7{{XbUt1AEi

delta 1716
zcmZWpYe*bd6rMY~tJc@9W>@zSjjq+MQR6mIq6rN)Wz3L16vR@02*nymOGB}^w$O-y
z(UR%7ChbKCt@Kw@qzz4ENt#HitA=h&+R{)+ETnWHri{9zn%KBW1Jm!$=tk?p-gECc
z-}jw!A7_RoGAxmEDI~Qvlhc2-nW1db#oL9Bp}+3cojGu4&u^1$yHA)NwKTVchD=%p
z=?x8K)$`3_u+gjt%Q7DkVvIRAf<X~t;wdp`?_(ZO5oSd4t70>}QkWNm>FXj_rAe!t
z2ogr4e!IQh1lXV<&<ufV3Mcbx5{PXS_pe1DzA?gGvO;8(4RS>7|5wu_A;wGHF`IQj
zpx@f_YPlzxCI&4vX{Z&D5kN#)h@<ZK+WOKPJT!Vu95=><#@V3yC~@SHdg^lQudu@*
zMg%pLS+?PcD9^|iLo5oP3ZIGjmgsTEwnJHEEZxLtAsAzX(Snv%&>7+oSQnXZ?i=J4
zrS3&8P$4RoKelh?l&*4~PjI@xxd<|+zDm<`oVMl1`u?n|z|*uUr_kO6rxYjFJ`eI3
z=wqR`bDkySIvvPuB}Zs1w}hOdTbxBMv%aIJ=Nc8|o2<-v+Tbj5*T+#TOD8JL@piGy
zUhKo7)1n@s{m!aVCE3_hc!eEnpHqWT3<HT#c*ogJ)hL~F`p9mY?ef;-gEQ97B;|-v
z+x>@{rVN@HIVhZzZ-_xh+9uG?^j%jT`ICO)a`RUn(s^edt`xVW>wiRlaXIU<k#Bmc
zS(NWKiBilb%H1<K_dt?SV=uDc>Q()=P#s&3GYRz|cyQdICGO|Q2lO>}9r>J|a90(7
zXECTh{IikD))8Trk>`G-s=FxtOHB2Hl)`5Ew>y`Xc?$W!3T<#Z=v$uc<P;t7ln_5X
z@A37_02o&4%(8HM9Jk4-x0cz?Elp-4+i|v(g+;jDS#<>rS3Dv_8Drt7B1AVdVVE@`
zhus+gDXg~|pscF3U`!A8tZO1fCh?$I?=ihiGz4$6pehS9XhKvhp#p&S3RkWDAL7PP
z5zDgRH58t{BO_^FxYH~Nvjj9^(2kbhL`g>TJ;1#Svq;PuD%kjBtyVPrs+V5h>aH{c
zhtMK>mWMHyx_{yV)eNj~!Nw&vk!?B`r?2>FR^Ar><b6$>yMW37CV@SPXaXnA<HMA2
z>!jiykQTbY-~&5Zh{;>o<p0Qu0}QzjNK>FDA(D{OKY9tbu5C{S<K*<z18e?cJkAtR
zx{@*#>PU-_&k8P=?!f&P;3a<nTL+tgwtExy@FPt-23vrJ{t9+Ky<2cLuMsou#Z24B
z{7V^0rk6>2atgN<uFLo*(UHP!q>0|Zc$zL@jM6M`(cVrdde`#=$z*csRGr(7*!#%V
z#@<&#yOoD_sKeWkM#m}+^5yxV)E%#zVQJgWd(RBJfyK{DTXwxiF3{;+D=xh@_+Eid
xHkZj=^XL$+js9NsJsG5*R#%cDI)QO9v{Zd7nVg~1FI1+M=Nm9&;P-uP`VVc~nF#;@