From f83e28683d7a8d595b4233682128da6b4e369714 Mon Sep 17 00:00:00 2001 From: akagunduz <david.akagunduz@gmail.com> Date: Tue, 12 Dec 2023 17:29:02 +0100 Subject: [PATCH] Fix generation pastilles sur le serpent --- evenement.c | 11 +++++------ evenement.h | 4 ++-- evenement.o | Bin 4392 -> 4432 bytes main.c | 34 +++++++++++++++++++++++----------- main.h | 2 +- main.o | Bin 5160 -> 5296 bytes prog | Bin 16808 -> 16808 bytes 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/evenement.c b/evenement.c index 1e0e6ab..867b40f 100644 --- a/evenement.c +++ b/evenement.c @@ -22,7 +22,7 @@ void AfficherTimerEtScore(int m,int n,int score) /*Afficher le temps passé et CopierZone(1,0,0,0,930,710,0,0); } -void InitialiserPastilles(PIXELS *pastilles) { +void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) { int i; couleur r; @@ -32,25 +32,24 @@ void InitialiserPastilles(PIXELS *pastilles) { srand(time(NULL)); for (i = 0; i < PASTILLES; i++) { - pastilles[i] = gen_pastille(); + pastilles[i] = gen_pastille(serpent,longueur_serpent); RemplirRectangle(pastilles[i].x,pastilles[i].y,T_PIXEL,T_PIXEL); } } -int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score) +int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score,int longueur_serpent) { couleur r; int i = 0; - + int j = 0; r = CouleurParNom("red"); ChoisirCouleurDessin(r); - for(i=0;i<PASTILLES;i++) { if(serpent[0].x == pastilles[i].x && serpent[0].y == pastilles[i].y) { - pastilles[i] = gen_pastille(); + pastilles[i] = gen_pastille(serpent,longueur_serpent); RemplirRectangle(pastilles[i].x,pastilles[i].y,T_PIXEL,T_PIXEL); *score+=5; return 1; diff --git a/evenement.h b/evenement.h index 53aa91e..2d397c4 100644 --- a/evenement.h +++ b/evenement.h @@ -3,11 +3,11 @@ #ifndef EVENEMENT_H #define EVENEMENT_H -int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score); +int MangerPastille(PIXELS *serpent, PIXELS* pastilles,unsigned long *score,int longueur_serpent); void DeplacementSerpent(int direction ,PIXELS *serpent, int longueur); -void InitialiserPastilles(PIXELS *pastilles); +void InitialiserPastilles(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent); void AfficherTimerEtScore(int m,int n,unsigned long *score); diff --git a/evenement.o b/evenement.o index 8e1a245400ed1c3bb12b23c939c0b71705439b15..46b8640775ae761572439a919be7cfb182b343a1 100644 GIT binary patch delta 796 zcmZ`!L1+_E5dHHvO`CL+O+{T7DoUu@BBCdYAZ`~~Se1evB0?@I3W|qH+fyOhwOCl! zl$NPb@M14gk0n<@QYx`hWKU8rnt)I}_9CK!&TJC=l=i{A|99S-H-DG%QGT``qUC`J zz@kiPL17(7<RPqq1^2K4`}DA|?uBj?eDs1E{)USwzw~ue6XL;Byd)2%gW=VhTNebp zBl{o5x9=b5lZH0JT<F%l1+T2XWe4YY@GcZ*R*c6l+n&pb9Zf?Cc1@D2CGY*8QSOyt zVU;(;&-z9t;RRag9*DOoPKd($oR7WQS!4f{TL-^X=jR(UM=H0pF^L-;<EPg+z{%#O z<@rp~ozmnRy|as2hpDbpF$RH1@n|P1kCImb*6>s3h}9=!Q`1G)h-!}jQLNnPIw@fk z=hCJ%!4ZT6RR`6dzfC;BDyj2|no-o}xRo|9yjN61QM+4<IWwp9hg*F<=yye)ic!ET z-KKS0nMzW({gMXyq~>{musw4cmq{(R)OK=v_8B%veX&hF+KduQv1)T9fe&?W2_4<E zf?d?ttiq3&kK-cUZ!%+~4?!RHWK1aHK;{eF#Z-0>Ceg{-@CyByt1*LN!)J7ef1z*K dQY3N3I0vT?ayI-#hd4r?cmb=#*ARM+{R54o?e_ox delta 809 zcmZ`#&ui3B5YD`8vRj)?LTej>%Gy0;Pudl%^<Y{`AogTI)PtoJdRZ*AP>U$^2P_nq zu%eEL(0^d<!LlquTSY_>y$IRc-lVXHwzu9ZbzYh*kBS4|FmJw@@0%pd*YYnMsMQNk zL2>-bQVTcX+PRs)Yx{5g>e=rSg&%k=zj~f+@dtLXakaeEPA$K|`|Lvchu4nUn~>{^ z>-}%>Qect}erDFndeXU-ilwzgI`rXZFp?Vny7=U@YuIt!;~suR{&xbxU_R08oJ*Qv zAZ;78w8Ill$vLgJ?6rYkZalxzsLBfrkCnx%(MOHy<{BHzs$N-U@3nM>RxT2z2|RK@ zNtluQ8XM{zfGvc~oZZW!p_3^pLqd-PQn69VTw?Y^zD&WVWI~=lC>F4J#<I&Xo1%_N zI66LwDnhqqzZO_sU_ap?v3~^C6xbp@AohBE7FSjTb{t=JTQ@%nEdN7^?~%|KH7EJ$ z6kIJ$Naknoki2FER`hy|1Da*8{D<ww3C)7rSf@N4)fm;kqReoY`oom(c7E|QegXwQ zlB0+d+21gNgZdEM!;<c@RRx=BKYr1jxO`<eu!;r4g%4OVT-J;S42QK8JTPuR1`DPO aA(klD@EzrO+&A5>%UNzENsq9u=l%k*bLW=; diff --git a/main.c b/main.c index 871d46f..9a6b51c 100644 --- a/main.c +++ b/main.c @@ -18,18 +18,30 @@ int ArrondirPixel(int nombre) /* Calcule un arrondi du pixel pour pouvoir respec return arrondi; } -PIXELS gen_pastille() +PIXELS gen_pastille(PIXELS *serpent,int longueur_serpent) /* 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*/ /*Code n'est pas complet*/ /*-Elles se génèrent à des endroits qui peuvent être les mêmes ou gêner le snake*/ { - int x_pastille,y_pastille; + int x_pastille,y_pastille,i; + int ok = 0; PIXELS pastille; - - x_pastille= ArrondirPixel(rand()%W_GAME); - y_pastille = ArrondirPixel(rand()%H_GAME); + do{ + ok = 0; + x_pastille= ArrondirPixel(rand()%W_GAME); + y_pastille = ArrondirPixel(rand()%H_GAME); + for(i=0;i<longueur_serpent;i++) + { + if(x_pastille == serpent[i].x && y_pastille == serpent[i].y) + { + ok = 1; + } + + } + + }while(ok); if(x_pastille < DECALEMENT) { @@ -74,14 +86,14 @@ void InitialisationDuSerpent(PIXELS *p_serpent) /* L'initialisation du serpent * } } -void DessinerScene(PIXELS *pastilles, PIXELS *serpent) /* Dessine la scène */ +void DessinerScene(PIXELS *pastilles, PIXELS *serpent, int longueur_serpent) /* Dessine la scène */ { couleur c; ChoisirEcran(2); c=CouleurParNom("lightgreen"); ChoisirCouleurDessin(c); RemplirRectangle(T_PIXEL,T_PIXEL,W_GAME,H_GAME); - InitialiserPastilles(pastilles); + InitialiserPastilles(pastilles,serpent,longueur_serpent); InitialisationDuSerpent(serpent); } @@ -95,8 +107,8 @@ int main() int n = 0; int m = 0; - size_t longueur_serpent = 10; - size_t longueur_pastilles = 10; + size_t longueur_serpent = 200; + size_t longueur_pastilles = PASTILLES; PIXELS *serpent = (PIXELS *)malloc(longueur_serpent * sizeof(PIXELS)); PIXELS *pastilles = (PIXELS *)malloc(longueur_pastilles * sizeof(PIXELS)); @@ -116,7 +128,7 @@ int main() 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,serpent); + DessinerScene(pastilles,serpent,longueur_serpent); while(go_on) /* Lancement du cycle pour les Inputs et le Jeu*/ { @@ -183,7 +195,7 @@ int main() direction_davant = direction; /* Check si le serpent à le droit de changer de direction */ DeplacementSerpent(direction,serpent,longueur_serpent); - if(MangerPastille(serpent,pastilles,&score) == 1) + if(MangerPastille(serpent,pastilles,&score,longueur_serpent) == 1) { longueur_serpent+=2; serpent = (PIXELS*) realloc(serpent,longueur_serpent * sizeof(PIXELS)); diff --git a/main.h b/main.h index 031d981..67e5cc9 100644 --- a/main.h +++ b/main.h @@ -19,6 +19,6 @@ struct PIXELS { typedef struct PIXELS PIXELS; -PIXELS gen_pastille(); +PIXELS gen_pastille(PIXELS *serpent,int longueur_serpent); #endif diff --git a/main.o b/main.o index 3c504eb2d461cbcfbeade333781c2ace13c28edd..47723873a235b3cb338603499989010de5f25b85 100644 GIT binary patch delta 1533 zcmZ`&QD_`h6rDG-$?UY7%+7AyWwiz*Ev>PIZ3~S-nzmaWogYzK@)KG@!4E%E=@xAr zHgR3UFa!*jg4%qj2r5OeEJ%fXY=WA$Vq0lHB9yWs!Uk8|LPfz!Ja=Ztybp8X&Aa!U zbMJlc&djH~zIghbU3$@(AD+q;UEf>v%Xe4gLk-s5<}d9Nt@)e#D(w~7Vf@!pAUp26 z?%cpP9J+yAb;a#K8<nl{(En106Qi<SHc?O@p(;B9vghR8H@>WT4>h}XV10eP>b0J% zK++myiPsK;HV1)h`SPzom+ks?aZ;rCm@U^YH~sN@<m;vWVEmpNJm17Y0N<or`iU*q z_+Tj3GHAE)im1~?W51}-bz`I;SN-L#yaT!Gue2c6)^e0h6!-js6S@aatZSP6)@NKK z@@Kyf@#DbH4!H+;w`aeisYI^w5ttRZ7~afl7<O$IZq-{9cFltq$c8T$*ItcO21-`F z2Dq0a74#Dusuv;^p9d=4t{sU~n9<0FYImg4L)AnB<X|L2!oY^if;;WiwX*fCtc$h3 zAxDVT58wgP*7)MAuxt0>UB%MES-7L}wq3nJlRXs&Z`WUP=f<zOLAiqwH>uroR5a_w z-h{}e&_X-XpMG0E+ShBCB4sA&n7L>Fc`g;>dKs{$Z3DExIP3z?A?A&92IpN#7pP%Q zSz%4kLo}1j(~HTZJ}GD-dCt1b7lxguACo(+9b5u-p>A2f>xDB>q$RNTVm-nq#kN3B zDqr|`6ZTffR{0h%uFqBD+<?v?_fnVT%9g^`=|iwL6n3k^UZfwue%(DX=WbEh?@09J z3wIP21NyJ;&$PEMFCKA))0yryxk8_!8B}mn!CzN!Tfyfx!9S-Z^je~)`t#yCJ%ImH zi2M;E|1eT<xH*is3|2g!VFk}B_}(ra&+`B{woyetfH<ymT)|TcemcTSVdKXX;;fR8 zQ}FkC5WtwuW5o@ABgf8H{@jEe<nIN>Sp}>(>sbYVT)|H%_!9~~qu~6p$93M1aQei4 zsW937T&BUZ@rZa`CMTWOcNjFBzAru?%Nfz9Q&e)sM3ZKmLwGKQPmwufJ;U!CwvDcs zSvr~7t{*e;_vG;RBxnJlYtnLNOn=QJJv*i!PE!e6F-dP?)3(xbc1&C)F|hMrOJL;~ delta 1367 zcmZ{iT}YEr7{|{!o7>){zWd6#>_aGO3WXn$c+o=Tg*UN6#PmX<)r}WfDJl^xmAPb% zsP#~k1QwB4-iVVB5we>WgUT-IrU*X>whME_E>=YLoV{C~f*v^MJm>fSKj(`xRW{+i z>1Gp_aQQ`Q2~SngWO%h|Ps;C0?iesemE=xBh~JmWOj3LjQj$R>9a2(}JG6sJrE1U@ zSA%^^@Qc;!)sPa0<GL2J8J%iWiJJ*b>N@FDaOkUPKdAZ|d+QRql4|gS8jQx#MiO?o ztFLgaP%JszvO$PE{DhZl`A7_w_4a{hT=l0*<>AK}tr>m2&51F@QDq)`JmrE;4h&=J z_svr|a2d0ZvJh0}6Bjg>PIIB=)m-Rr+jKQ)E;RAAm>lqEE+PjG4s6=WG#k@wD3)k8 zEU<36444l3BBW1xsYGZZjc%Oc)?YD0L=s;#gbRGcY!(~IJcnAVEXw{UPW{RZ4Jk9~ z*+mt;<#iWcZ+)ePjwSK=mek-I=ruIZ)yS+tPwk_;x~|Z2l{FL?*zJ6yiNIUq{_3v3 zcqiv%JF@$nWAyMR$<^t)bZCG|s|!kPdT278W1|G-OnccHffZA~RLk#-(FI;<pERDG z^+dwbI-?yhl<#znXbz&sk++{4THMH}bN^ATu#B}Xd@>%q4$t|gwhXKVPFJ0v^52zP zxgF{XoOCz5!~O(xqw{3;V0_^B<Bi8Dc!=uxtjc$hu;tbn;VT>kK`ju}F@YNe{zKrh zzzd<W&`A$K82ftgV&4caus@R_{TXtFlYv{=<MH#@gcT+QZWs7;mh+8ydI%ejIl=G1 zdG21X1)eYPPZ}@JJoi>XSQiS41nz(#+3D)cLxjPPTZ}EYO%GSS_XO1?s8a&pCh+$H zFA?~6f%E^G+r<WDmbR)jBs>N)Jt6!lc+36I2mkPK2Gf?$v>3wH8kXJyF{_8Q8=%ru zgdg3VOHbR}v>k%BBkYj@Vm1$Zp0(KBY{3AHb`MJ$;2I9IGQ@D0FoN0PVVBI%=<rAt M7H!vFu-bP027fn}IRF3v diff --git a/prog b/prog index 746595a165b7ff2602e890d667e3f81e5bbc3f14..5af8e2988ca3e0805448001c0f4331facc15d297 100755 GIT binary patch delta 2170 zcmZuyeQXnD7{9xAtR349_R+OlJBu)d!H};p7OmOTiwA)KY6U?9Aq)QD2WnP~U@hi0 z#&MRf7YNa5j1hwWpr(L)EDQ!(hB^ikf(apw*}@g7>Dbu1ft<hh?p6kJ$@;#}^Zb6# z*ZaQD_Dk%3iT%OGW^K=9^ly7^B#&Lo73@8J(Dvb!{+)NfxVL1bZR3GU`L)L*%@!?( z)gsMft61kWQ4U^_1DB#gA0?WLx{6%RE4Q!IG))#%^(kV{FAr7dQX(oODe~rXijWld zh~a{tsVFMK6_M>!m})@{jDMu5##${T0+|TGf*=V=7O<y<OCKMWf_)6%I2-<@py~+$ zqLxxfFrf<xDkwHVm4%cdB*+{26?1Lbh$%<aO?Nd-gdXuz!!j~#LkI+#f~A!MTm2e1 zCD4b6M|sG{=nv@eJLHf2cD9s!S>O)QUZ|oRh{^t|25ajbcn@bpvy5OhR2&hE%14*N z|FH%O!<?W#Tj`Jb(-5NhuZqfo7!rfe4w_rHRqs=b?tS+(ZCm?kzbJQ$Qesh^s94G5 z!f6#}K^IZK3Ws`6PsJ=0zZo78+Hhy;){;$ykFDNaPLn%zY#f*;XlIe|Uv{dCsyDzo zLUr*7vJ|CYk_l9ZO2(>3a1NN9!)Z<koFgDJ>cv5l<0xA35lteTvC~ABQxWGbx0!_| z%|iVsF76n?#=)jozOe+U7!I{TP<^jx3{xL4R=%m51RX`8-+>W*FHy^QW96HUQk|6Y z@(p`weZIxix;Xv~)KQ@Yzql$VEqr4Wwo<SKk%HJM!bw?ZiGN_A&`*kjt<FFJzwAD0 zp@CvT28`nyYYiAKX4QQdy-)~=(x@}oN(~h71@}>QY&QfWOu+t&5MkqYfQE?BJ=j6T z#8pED2iLGOdNPmpWK^}#$xG+Ro}#(g-=|H96#2WTtmIGgQpl&ou>Y*61d?dKew{Xv za_0ngHCgC%mBs$Wp@Yh(Z3E^`RQ#zradJV~M5yaC)c61iJ7-SH%tSYFO`ZWxlpCFR zfTCh7(9VXo6_qgR>m=@+$VK`|zH8i^&qv{&)j<uW5$4@~-1c2o$_@+L<O^cBu<3uG zx#Vq^hh0uKyNbD*esaU<!3)NF(E|+JCg)v6p)GJ^yos0bDCW@7gy+~P`+vi&yOCie zJ9wKWi$|qDtf)%mR_aP^1s!=W#S#^|sOsihiqQ4YkP5pw1r8OVQ@%`#@79aA07#Y; zSB<s7og{Rzp9Z_Gqurl;Mw*K~A$h@>s1TzrP0vV(Hxnv-C?P7F;CKfZ^ob~A=s{sx zW)DxxPLVx}Y1zg%?i<D|vOW@oxj7H84S<>U^vLZL^=i)05Joi}C|;CNjUH_T5VQF` z>Yuz*;^lgJ$<~r$-XRGw6dI$2@>|Ntp_1we6@By=Grpr&4c)oct9LsI)k#zJYcI)j z?_ysd``y0W-M3(;;~v<dTcp=Lom+B?JmHzcddLdTEKcnqyF8VSAA9t1$1uHo=@8D= zCQ4^)rz7u=Uc>J29-O`iQ5f8WW(4<Qb)bbcShuG%Z6($Op2h~OhcI!zr84REZVhE) z$JFMI*~mSgGs=?5W@p+MH&o5|6Oq^a2kbAV?Jcm^BjP%&X+9UAbe(?{>JHe~qu{jN zveq)}|1Q*%2DCS|<qrgSRS)2W(G7haQg6pT?Ld$$T&o^~p%_}89c9tsG7@8{(B0^X z&`ISUiY$Blz-X?aG?F#dVYTZ;gVI2HtVN_|h8GsHYQ{fyUkSAMs>o|I*Vrc%8qzv) zVdnMXEBS_`cLdw{7+`r!E>rI&7iXQ|TrRSsa;p6+le3<*S3YU4FE%*sk-^IInH-lx T&iSThHPHXX_>d0w>^{qXhf6r3 delta 2055 zcmZuxYitx%6rRVHcKcvT+b!*Ow_Ok-7N~*JNCQPcMlMKE#EO)V0I7(W21-~6$hsuk zisNKu<pxEm5)Cn+LJTVgNYl4$%MaQbf+P}Bq=eZNNudjDD>{C6X1j&pBs2G(bH49< z=iJ8}^YO=g{7*@I^7S;%c&?`fGx!}s)}qex_T_&K7KOgbufOq1dHK@tiRxgzsHgFJ zgZ1NH;Kg)pC+*KDw7PX&SL6Y05zWsmEL><<5uazk=}ipD1Nlhm^F$0I!VFa&P~@m8 zM`%~(^d-AfIgThHZTOL{6ZnaWH)ey~%5z*uj!eVQB!H}C{G;otJAx!<CD`ZK2k<qI zsGQZw2dHFoJntfkM<a^6*Q8ijYJbAq6jSN+-%l!?rfY3Exzm_el|c(>S1mxQaxa@N zrH5<_rzb;&gk;SaRrv~O=@nVjYUb)Sm@(gdnwVYSwM}JeE$1eH*@)^nRIna&#(Ed5 zGt3wM9z78(73ZE#)P(DWPji?w<CMfXJHR;uGN-K=*7dXJVV?U|gbFLJiG8%_u-9lg zGe$lRAW<t=nFB<*%<^seSJ%Ut@l>mT@I`s4E)R8?*=rf8><yjcw!6(y+V>}-q--U8 zQtfdl#pe4i82;B8_8C%!(ZWglexXI<v%N<U3ds%l;utiGQe7>kK2HO*c4MZ>&5GO* z-eRKA216mX-b4YvY8181L;=K5f>bxpL~&BxtWnf+CJMa)RoRRnYYLJej2nfG!E~=D z$hocO<scu90uB?>cQAvC3*R(dNbm<{=BjiJVO2`yZpjy-&YUHwKgJ_9Lv<<eU@e zf%q#rh*~~i9-@nEy?4@6Ig?(z69rq5d;60E{fU8oOQ4?*_&n`UxPfzRDl7%Ym|@4F zRb*<`<SEeDo}kr4sV%qIx<Ao85$$wEt}UhUp{_Tf6He=+HMvuSIS=XK+zH-^05w*@ z4Q(^+g9o@c2Q9dr#4iVw9^$u2Pl0*>BK|rTP-oft5v8^9V@#UnGKCvPR1Q2DdJA!_ z1EI~_W^RFT9v9F#cKh322KTk62e1sR5z9y;*{Hd*t%4{wR}$atDY&gya65L5G5h+6 z(G=Xo*llEX6XZE<Ie1vgTX2NrKIZDLqAhk?n%Uv|#^Q>U&$Ch8KH2;AeVl2zkN0`{ zEFXLpKpAVJqq4INS;gH=l!}g6I#h8g!K|VM<j1REb_^A6gEFeSqNb~IA2~$)slT#f z;OZuPhsu?<N_B_1burLumj6Y~x0JTJcf~?kqY3;D!E9#_x+RMEG=lF|x3Zix&*2h| zL};1Ao|-w*sPsuO-RLNtbS(n5KcSNS%CKhpnTek?Ts1M*o(OGo9OUoQ)y}f9iw6-m z{thAShe3MOIYUSqq`y07^A~A){w(2(d-Ub}lJOhv>3X1(^*<=(4`cI^u)#@f!J3o; z;ehMs8P^c!a2g9C=fe0o#`zen*qU`1t8jbvVszl&aunkndegPv`z2ew1!L1c6kbXj zBOFXkOacO~dc2qK>N>mj@wm8{X8;y&z$>8eYK-x?uqn>J3iqpsZ^M<0$Hi)Kg#QTc zZyxCH=xd%3c+(JYA?SerDz?GckdXpqpD3I(G&qJ~?QKPS1&`+dMzk4ej6$mrdv7RM zIq_tQaLE}=F3Pr8ji$k`rFSjk>HL{4MCgW@cdSS4@Zu?;tBbc-Pi2`_HSH<BW#5=- zTE>cCx(s(OgB#1W<<Z|}H42~R&;un!)&iS}+D1D|p0(c2HLWwjp^~mdVMQvvP*#+D N$!U5~jxg^#@jpEx0VMzc