From a1167314522aaf195dd93269474b01a53196122f Mon Sep 17 00:00:00 2001 From: benstrb Date: Sat, 15 Nov 2025 20:26:41 +0100 Subject: [PATCH] yuppiie --- MyGame | Bin 16768 -> 21840 bytes main.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/MyGame b/MyGame index d0f1a44de02f7a877c298917535a24cceccae20a..240de3f24e38c9ed893324541cb893a384c02143 100755 GIT binary patch literal 21840 zcmb<-^>JfjWMqH=W(GS35U)T8BH{p{7%q5284L^z4h$9yd<+f@Y7D9jYzzzxEMPH+ zJWM@|7GQ>m!)Oi&mjNUU(zgY~U|?WCr)8k(U^K{0AR!P9(g$K=!xr2SQ5el20O5o5 zv4WUTK1>`&OLBoE85m$ROdO;SY@Y%|o&lW(OF{zyqy%a{NFOL{8gxN|3=9pnsI&&u z-v&?`W*-v+12{}4K=n<4>Vwe+AO#Ez3@{oNo*-v{Z~)XibQ%^PFdALo1gJiAS_R^4 z1{e*p10)2ZLHL0(h{wQyPU8xu;HM=iAbsfWgYjYRgV8W|20-<#fEtWWw?Lf10HZ;6 zfP?~{mZX5<0mLQ-L!*x&2x=d$_-la11B?d6H^_XDy#@>n44|~;?ib3y)WC26BnFdb zWMBmIIYEjU7#NtKe3(2)tq21HIDdfj8!yj1m~)Kp=8Me-H_e>A=g135;d%NwnMr0Q z`Z+1OIhlE-6}lA`X1Zo3dd2yAMhqZlNiZ;g^DxBUjbNKVVj#xF)N{EY8W(0~WMF`1 zeH0}<4A{j%?uJGQih2PY<}Aly&So6qp!mRM{&XDbbr=}nSrpkpZaCB@;Be=49O@%* zh^OKZe}Y521c$gL4)>hFq5caFaVs3=$l?&U$05EChxvhw3=B%h0Ssfu$EWA!=fxM7 zBo>v#$1}uxhWN&(q!y*7XBL;F7KQja=j7+5h9oBCq(bDd%7ka;rR0|fXXKaWq&Vl~ z7pF3K7JH{w1{9?h7pJB$xTlr`Cl{rr=7ndblw>eCXQU=)JLl)*WEN-U=Q(E6v*TgFvqEO-(E=ElLGT#Djt;IXgZ%BRf7VF*ApuC^0XEAwE7QGbtG)Ra6q6o0yr$ z5FejhkrP1 z!6Fdi0+Kka>;}o)KoWp$MeFg@P)&nI> z|1WqnAK^F*_tt;YQ~C@H|5eZEGcfSWJ23oL1@SXL@-H9!|NsBL>LGmwh73?u_VNOl zzYD|%Rbej=fccw1d{7npas!yZ3d9FhWiJGw#0OPfFB`!8NgzI` zx_nsx=68YkpepQT0+`mjPgY6^IY2%3eBv`9&Z;s0w>&0On_b_@Jumr2?3r z1mc6Ltd{~{eiVogs;XWxfcZfnKB$U%`QabPzg{3dsA_uo0L*s+@j+G6%L`z>6^IY2 zie4T7^NaKt7}6$y0t|#h_eC%#G2;l{0rfK z|Nnb*yQpZScxbbL{Zq>6(R{?h@IZ9z;TKc?{r?YEXZY5$^J1Jw=Od5iCm#YrTn!Hx zp7iLoeF_RHQGZcAnRFw=`t{QSpFyx_2_2h1F>5VlyLrk zz%Snb3Xa22+N0O@B1p2=^c0BF{O8g6!Qr1H*#@(T5@SzL@>@|Nqtl zr7xoogWd6&Uw}1-hk=1#pS_IbGru7F;WXp`VF-mA2+FxH{{8_QS_sl+%frC1_t*db z|CzHvI+;7OS-|p^N9!%Si&%b=y1c zV0dEie-|iOzi|5V|9^KePj@v3SQ1Gp`lZ^R|NkNW208R9$Pka_Hv--4-QgU~KhD*% zv|g$ZZGOSl{EDrUxigrfDl}LfbFVEl@md5}7Nw7!r z8;Q^Sb?zLW`Rl|#^J}HCfa1WJ3lzw8virFh82FezYKF~qU+N~lNYS7<`uc#-<=|NqWIJ3!T5%cW8aP)hy(LILEG&i5}o z{`~*%(Ru$x!{7h^T{>U6bUp*|HvI*Oz5_A0|NH-c2dD}K(&VvWv$$NCZ zKloDKh4GO`udV?H0|Vo|i@z98T>Q5ar0wF5=2yI$$6hFd%sux5k}|jb`2T+&Bxv7v z9)2NCz+AY2AT1YvG#^saJoe(!_y7MPC11o3aNvME*m9|q_r;1IprV6+>H+?32SC0> zF5(=+K!t%%uj(dt28K|N&c9&q2YWQWxxj#uuI8wK>%z{@FLr+a|KFq6G=m*f>peF- z&>hV4;^_DP|6eeGeRJ%^i|_ycgM-MU^Es$E@%RA>rcW-N?>su6!vYB!WT0^Rg251g1@yTIx-c%^^LnS;Tjlliza$Q*_j+~5EI?>zj11w_R%9Cu|A`uqR?aaW#S zpd{hS0ZCTfQ^28>;-L*`YLp6iG#&v3C@A6{6b1)yKzQA;>Y(C&<%J zQBe^ThM@L0sM!s|puqu=?sAR>274)MEn^k1F(CaeAV0nT{~t8y0Wu4OL3(2t z7#J3O{QqAYB;d#=(99IU#mC{!?Zw9do?oe9U|`tr@&A9&U<61BXpjLk5V7au|Nlop z0*-tFZA^}Q63xs$da~-BtpU zVgSvJi!egss0bwI#3#@Lazh)lGoL~;i#wk|EEk`GBcFsLpMVn|hZ8pgSdRxI0|U$F z|Nq;ddcbaJW_IB-U<%`cDR$xZ0sFy;j|1e_8b$_&gwOx~zXRz3`_&cXR~NnjrUei^ zj(i+0+zciR3=At685mT){QsW`QtQMg&uOLK}+ZB) zPf&Qe^EEIr2QqT;890KibAnmt2pYr!`74Bpfnmqn|Nno3>;(JE8{{uHz5u5CTznGF z;7A0k2Fn)n2BL1V!T3=EPW4$?X+X(%7o_kb#cueSpALqJMk@?Zb`&j;}@fEt<5b+90Q z0BA-Ry0#g_{{fW;4cUYE&!O%EwQ)gwP#*$BBd^5)@uAunUO?AZ!P>E)ejG?1)L#P8 zpb29T4O_EQ0Gc6YU|@iWZ-6=&N--P&DP~|`fGPv`VL(E^|3m!4z`y`j`VY!40P`3? zQ^a8ZLY>d>0V;0+mH!Fl!`uxrb09Em{W!YaX3%ut2BpKGbQ+W{gVJqKdK#2o2Bo(_ z>0?m(8kBwprN2RGHqZDGlP|0}W@WD^I-3+xPx!XDt{&+;B*B8XrzXJTLwoW#h$ zAj8hZs6LH}fq?_GfR~+z5n?9C15nY+%Lp-)qZ-8HW8?!x7YoO3kQMxlqPiecIkto3 z1R!z}3@naJ3=E7Qf@wC$S;3&4HcLTbAcAQHoH z4iW!jgh4Ej&zWRFEYLz_CUp=C zG_}TL2x6T9#h^8a1qyv8R}c#nu1x+Q7AQEFB0;QGObiT6$spD~5GxnNx&&gCgIJ&x z$5;H1yazzK>eQ2c=T%naOnK+Ch)?{k1s0^2K4ls)6T1a<)@DE~*mjACbC zW@LK9$iN`1z~RI8fcC(E+DV|jP>2!}rUX3kKqz4pWE2n=WEA3O=9A`ARxvW$GBOM3IVs!uswmqUGV_#VFflSP zG8Tf93kL&ew3rc_*&Lv>=L@Yovlti{K$TS`0|Nsnqpbv`NsyhKP9V2!0C7Rn`^?8c z^~zOHkp#*l%+El!yazR!LF(8+Qzak|X@N9hvy>5JDa13NfJw5&6%HovNf@1v&3$u7L6MgXHl3p-_eo|>>PD)B< zk$yU8^Ng;Mo{6D;a&akxyI-h+W3U2<&j8s{!%&=`oSm4GQWT$AoR7rGODrm2$jQ%3 zR{#^B#z}m9X=YxDu~B>pLvd!FS$tYfetBkI8j`M3(B>SFB11EfqKy2a5(SV>gdGJH z5WU68`30%*nJFM%d|F~|W=*EJ|1LWDMMOL zeqss2k$J^nnG!=I3x(3W;>`5C)D$E)!-T+2h>tHdiwF7B(2N1%5etwLGxNZL40(yU zsc^#}W~Ahog0^H8Cqms9U%~)4F*zdI2JtGG4RQ@babkQ*Vo4%HF*vZ`7NCS$N)AK3Q+|F91Jt!3hr?nmH9rp=tImdo z&~AW&Zf;3wUaD<+YF=tlX0n2AZeme#hAm`Eq=Ig`g08=jf^Kn1ifwvcsiC2QZd!U? zsfDF(W?oKaUaEp_T5(BYa<*=APGWI}Zb4CgNosOQW`3T6Zdz_?QF^LwVor{3a(-TM zNn&0}v4U7ppUb=2>Vo3&EJ5*zSk#2EG5hxkyrsd`9CgwWhEm$zb$0sIb#+M|fBP__wgQi43a3X{TG(tWR zF%P&dQ zOGdK=#4X4#&aBW+$}A}c@nCdnP8x^{D>_Q^GAlskNSQu(>nvP(W?pKEeqL$`hz6+# z6(69ODAvnh0DHPbH#4s!55WWFdk{A@Ck-SB4L2w=wL~w2ArmAGid?;9258VE7nOhl z0yHKADw09H5_VV-E5r^fR9P5M6u?SHR(4pKh^y}hG7nV0u`qlDE#(4n;TY7OVPp`7 z@6(3usRiv#!=@hO1Z?7m-|8W zFC&8x!yV{;c92>a#^zs8Rn5R4$N<}i4pVy*>`n>z_!LYWRE;w-h%um#!)Sx%gc&3m zWch=qzlEo-zW1S_zIx~B!rJ)rq|s1R5kj0neJ zehLn8(0UCaCVmE3=75<~23F6uLE>GT1MgIK6I9yENzAjPl&t=ve#p}rKX9y9zweQs?2>cC;n zQm{B5g9E7IU|?VXudQKVU;qseVKZkZRDA(-To=@{0QqDeNSuiqlt@8b1V*ak5zQ57 zHJY24nFpy&i%Uw=()5xUQs5^G#Fym8Cxgxw05y|S^5fHU@{u6&#e*D# zqBK6Q4`-^tM@-rvnF*fk_R#L>yeHJ%~f zCDPB)*V7q%V1Ns_4IYqLkjhYyS&$l^0Xbg4H!(BM9n@m?%`ZzuQUf|w0DP1H(m4lU zePyXR3~0wNpd3SheE0#_(+pmvxdjaAMTupZC6x@G#Q`~qm8nJG6BSZG=N32@r6!gj zTO9;h*#~wNXo+BaL4I+31@cJ>_|JVnX-T4=%>XvAC^03ov>4A35%J)j1hiWRIlck; zya?1|6C7aY9Dq(Y2usb$PtGiZ8Kg#UO7(^n--sk@!V<={cFjC7_uQL_ta(3pC#gnj-~|3NbJ+ zz|LiY(P-5TWKtB#D$pZv8vk5E(BGA)MADVsz==>>+2CuaSX@p{^ zG|YJL_$(-1VfH6L+bu8}=3c0Fc>0HlFG8~)*6xAPb72ah2Egoxav4^j>4)`uU^Hxf z0!%%+|JOnF!{Q&-zktyo^I>{HG@5f5wxQ{V^>1M`XbnC{9}J`0e*{gx0eH1P0|SiS z0CyO~1a$k)f%>>e=?^x=1EZnMY=~xPT7`2M7#Qv_Fff2N?}O)}kk+xl&T&Jx55|Yl zFF-TM&^!z>7j~{t2WYkjG;;+KM8YtAFd8)G4oW*P`(gck*m-`S{RJTHAT=NwrVo}5 z=0d{{rXO}r(E-o^3j+fKX#F=x9}L6v!|1_9 zHZCy(v~VAE9uY_r5{Bu63GsmTQy}SwjpM9<>PJ@(%4;yaAX*S=KU6tL2#jI+q0s;q z0}(L&Fj@+#A0&s2A3zQKfGmi`KcMs1U}hmJy#N}>0*wQJ3N9oGbhV~9?DsW?XzE4N zfW~D2&9|eAfpp#iZOC9?U^tH^iN(91>XaF5$0AWE$kXjH6MrT3o2ZJfjWMqH=CI&kO5buGY16T+`GB7w;fw^G9fx&`-m%)KSmO+Mrje&uIg@J(q zt`5p_fYLXZz*-n!GzWyszzo$V0b(#PFi0>%On}kBP<1dGkKe-JHz4(hA)Q z3o~6a6TRYmJtL5*3=Dz{3=Bfhv=0$sU|?rpVBln6fF%KN-0(pqp~;zn2g(OgATxMD z3<4PB7jT+~ssniy7KYpm3=I4X3=GiZ1kUpy^&kvYP84+q>K}B)`*4US;tRh%S{&jJafpZE5MPHwyby=@X&mAUafpMm8z>#1hg$~@^`P{OO+6^SpjipksQCEw z-2A-w;*!LolK6Or@XWlF{PN(8{L-8h=bZfFR0hvt@6^hGqSWHz)D#By)RN%jqSVy9 z@XVBw3`R!=ggwyoYbJyWCqu~6qlmJ^31$+2IrjA#3HA}2C$(JTNpg^GE1OLkn*6^BsVK2B zCo>6@-AqjlKmzVQAdVr3nG0f>fmj748AYjyDIh*rQA!SoX#|ogDgiOU>LUydL2R&& zWC+XM$J5C<-bl}c0md>$Fpcy~8T2#qb5r$`Qu7ki^#h9Xvr>~wiuIlKA!VKe#%B;dfGqYmjf^5Sg6J3a9x~6)j=vs{|GRmq<3yU)g3XSqCjS7>BiY!tL zDsmE&i;WG9(lT^&GLzDC%JNcl4fV|R4A8YFCmR`Cq-7Ob7$lZuKf`<=ouQJ>n6PvMGmX9>~a%}vJCUgvYfJ<+>8Q~EMtR=N~83$ zbOVE|^vpcn^yFk+LlZq?J+L!CmV>eb69Xd>WQMX?pfp5|nZcV8QTB>tX7YksG@($j zEfc4)F)%PQ#6$U|Qkk5fQZoyb@fa8wKG;KQR#3SLt5ZQX|3DH4mDeCK5UzlVgUWoU z5g=iP1|)G0$ z41`}GiG#{Wkk}|54S~@R7!85Z5Fi`^pZVo}c{IP_@aSfJsn5XR(R!eS>Hh_f<|7=3 z!J7Y@I_Wbo{8x3+XJFu$cVPIh3gTyg*>*WG4UkbzrRaGx1fcZioKB$U%*#PEqf%u@R>16?!&jjLw zs@j(cVE!*X28Ik!74M-9gQ}*N4q*N(5Fb<}y)*#xAA$Iws_3Nxn12hz2US5Y z1;G4EAU>$-dCBnq|Nqc^5ljpW`xTfO7(6IHgqx}JDp!UWRmdcmVJ z^u}wgG(CR#7LX!_7pwpM|L@UTdtoO;={>M9FIZU^7+!q%_y7Nk=>Px!w;U+B{(|ZM z|NkD{t}jwNv{}GTDdqHNK4M{bAUgK&i?9Fw|L2!?VPF8oui;zI&Wmv#osT@4pL_@i zaWy<(c+%teaRosKhX10kbr~4GAnXUJKaAi`*dgHHz~EsEB1?q9{s1Kr&ix>P{}0k8 z98N0 zLp?g5zNq^D|Nk-8WL*XZ#@NFc_JP#D?n1Z$q$Sv+^Y?yEMg|5@!hXT^4;)}@$C()z z9vtxKj{R}c@POg}!)eg)5n%np!@$6=&tAsznO~3{B!e(+0?0ha5Ri#47J>r2^ZtvI z|NsC0%rC%tk_QyL5zL=m_;nt*FeihwGrM#qv%CoZ`~SbA<&k=$?qZhKZxzxY)$@56 z7@~Lm{mJlu{{%(`2FIA#mkfXZ|Mvhni-E!L+v{6k_q>q)`~N>gtkapL^Vn#icT{ZtYYTgBT*z@31g%_=V{{MIEJocjY&;S31mq6Ls zV?QW;fl_$qF~b8Mod-P>fBJBK>^$ki`O>5Fgh%H^55=DzoF5%~O=O}SV>}K%Q|LVD z80#1Z5{r-Z=sab3((oH<=Cn&M+f+X3epwI%jq`RD@+y2F@KmY%C z7xQ#ibAT0rA^@TXto-E5sz3k#BLW=kKd{HHK#h^;7VmcF==CycJy@aG{EDsl1zV?Z zr!$8~^AU+?#~8=hSi=K`m!OWD&{=xtMaS>||2vsqG=eB+ju)Q4L1A(9#lheI|96+( z>GfcA>3lKMh4I<2~ILJr^ZGGlZt`zklM<`P4Bi*rWN4 zz-RtCcaG2eb>g4-wbEEV^9%4E=K`gII@!-$3=I6y2hu$G>yGh9UrOV@7W*QNzwWWe z!N&?7ji(tHPB^D|@aG+V@#_~T`P9X}XgN?K=+S&cAlfl5796sm`~xzwgbS2(j|ilB z^5* z$p7{Kzfb4$7v`XZ)_MPh|G)qLT{=IxbiVWGy#He2zyJStfC_GKD1saT3q=Nym!S0m zye0r8pHVy-0;3@?8UmvsFd71*Aut*OqaiTVLx2%H1L$y&fuX^UfkDC1!_~*fUm?gb z(kIB%Pf<}3%_I|33lLef#qNe*+@}!;LTh|E~bafBpae3aG)#z`!5^au@>x17lSX17n2%qcjgY z2gpsJF<==61_q9g|NpCj)VQz=Pu`HV6d06)-qNBP0=xc%mVpq#mE2uwLlsj`2^aSoO#(Co0$`M*f~IE_kjHJ z@&A9An?PnSU|?W4^6~%wCS*O%J>RG#3=E+01JL+@&L=c=PW{ZDeJs7K zJ!~$`>`bXV>>OZsd|_Zb?9!C-gf@UU}$>=a>SU^swomP;>l4~t7PYX-gt99mObLwMu z?PYQ8VRdO{WAXs21ZgE=g7NL43@8O&Qv{Ni1rZDk3}sLWQ2z)l1YLIwns@~9CBz`^mIQGa7#Lvd zgr%W;(1a(5DFq@xeJ1F-U{L=ABm|QOwU0sk0_b|`umAq%gZLaQ5c5IpZV>+lD})c4 zXa(^#pz^SGG&87C&A`9_ZnT5eXM+?mFffQhX&41n#*hGAhXa~`0Lg*+4ImoUCjw32 zg81Sff`NgdfD>XrOxyv=hxr54M*t~>^#de890mpkIVcTN_xnG@f6(A%_y^@PK+XFP z<-_DZK>2q#AofFzqZtKTw~cOr88rUgpmZ3NPJ_~AP`V9DPlM9Sp!7BJt*B{69@HcnHYE&6rlMTW)G-u4-yYR6SoAfY35;o<$suZe{kNHU;xcagTz4Y z2GP-AaS?_a(EJ1v17T3V9b`VNJOPP;a35H`Fg$;P#6Wm0cuhBEIBWx}7huSNuB!*B zg<)*|Jpz{GXMnAT2Xh%17_NiO5oJJ6PY=N2V(|P2Q~!+twAP%D!2-Iz9#$@Zwt5IM z@GyO|gm6d1%A7#twx!*uyELfjAAZvk_EEZ7{FDg+H$j|oa!2oVUY z3Wxemus9Ec0yJNM$1E5a82X^%8=&rlg~NQXIK)h3ayt(3Lm>Avi8FAZ`RhDbJrBbK zXn4ZRzXuiHAPNZw@OTRY1H*Hu_yuS>2aiE9FfhCUizB-P!u}4jmw}JL1}%R7gVZze zGQjE?h-wA~RwhvV!gvT;2_(+M!yo{)7gldrF+t+R0L^@7ka~o6ILi-*_98)z%GiClhA+oDNbCRf9||0jX!;W6(hJ*IKB! z3Yz#%CeWH;%yfGUEH1$yffnzlq2`#NnR6Y7d!9heft6PB({vTMJhd}|Fe!ydU zpgkqbIO3NXl<#1sBGJi3C5C$W4Ds=aNty8_iRlcWwe@<*49P_$NuX8vdie|~sYR*j znZ+fkMe!xM@yR*)d8x$=@$o77@##7FNr^e}DJA(u#qo)y6%5Jwxdl0?C8;TT2G~`^ zr)B14#wQjPC053#=9LsxGNctH=BCD{l;-AEGQ`It@!~V{GD}dDCKr{Y=B0pL>lWnb z>l*Ls=Mo>!5FhXE7aH&C5f2gca0z0FcZu|K^!0RRhNM(pmO-U?C z1aCxefNcc;t^W^8&B;&BEU9$P&nqd)&tZu7^p7ttNy*HMF9q$gK-t!SzJUU53kE3I z8Jvq!6H8K&EXK7l1GHBHy0IcYKBYK6J|i(NB`1}^H@^&7yKiD?yZ1((%6I{J|!o<2;|Sil2p+4i;~Rb_=3z-NWhh)<}e^_5`p^( zx~~IylL-2@4!9jA4B(h%h>s8Pb%sVM%5D*G6s0E?K&;GwY#E7<2So|UK}97D@u_(! zkVq{`Ovx-QM&0ZZAD>iQ3{?pVIK=)G&*Ffb#LCnn@Ya_U(B>1!HWuW4GiV!Y81#xO zb4wDF81#xuiXe0bjFp*Jl3G;2pqHLks+W;ioWY=%Qkhp=nG2yyiXbv&sYRe&HYl9< zA_l#p)SN_+1}Li_r-VTdlm!^{N>VFI81z6nhe59>ALMTaz0?e7Udc!)Lhu;$^72bk z!44=W$}dPQDyf7DIXZdjg0eT*NJy@N7ztyiROTh-W+pS}rRSG0=s_$=DlTTwOU}>D zP0cGoDl;fxg8Db0wivA60Neiw+ZPJk{|U1Kq!z{o(drBg44}FRrXSYtDS&oNrhpWI z+h!03s9g$T!P*nb3=9n4{{PR1>4)``IG_q({VOOJ+^z-bhhfk{MNl6JrXSXi(tv8% z0Ch0PjUXn>epr9TlmWE61hk_BVj`?xb_1jVBnR~eM3w%Xj=vb&@xrH`(gc> zJ5Y;2?PriWsB=KmaUd?7_F`ZF_nBbshxMBnIKj%GyLcgCjO>1hECWL%G;Cq|Vf{D< zsD4;K4rV{pSqw1$Cqwl+K@EiU3k#t7Vf{#uelgIz9#kDne=fNF%K+Yo43>iSdtjR> zLFo%D4kbY5K$&0)w2~R*FIYcV0jggCG|2=~0g?pKPz)1>(Zy)?!`hPy&`m#I(JX}N zgBr(BiKZXcK9c}>mVto*Ha-ATk7gW0Jybs|{9)~72GE2YXzejfBb0`PKa|VRj;7xO z+CG8p&jrnW!qkFjbo-~G>E8j>zXNJNc!42EBNU_CKc4}z{}twb*nVZ$K4wU37^)d5 z{$V1U(DcLlo3Q=NP-noDgXbUN90mr40}KodpvB&>Yz7;5f$bMYcQ1?&qt8J1(Zck@ z`jI!F`?q20V0OazFd8%u4oZ74{jmNWZ2vcGpEtBPfR{h8bOhSh3QD3d{jhPE1ki?B z1_lPuJT%O15Dl{zMn8kbA51^I9|q01Fnd6HK^UeF#0KFv&^UqVhqYG)p!(6(gWL+z z2g4ts_CuA!gc)G^(ff2T{m3*d?Z7oNFfeF94SWF&I8ZqNG7IJ&Sor}eW?*hd)-PZN j;TfVy!t8~}g8D*`@*Bp7(T<>j2nGg*UoZhEjjkU6CcD|B diff --git a/main.c b/main.c index bad0371..50311e7 100644 --- a/main.c +++ b/main.c @@ -1,3 +1,4 @@ +#include #include #include "raylib.h" @@ -12,6 +13,8 @@ const int pipe_height = 900; struct Birdie { float velocityY; int positionY; + bool is_colliding; + int score; }; struct Pipe { @@ -25,7 +28,7 @@ struct DoublePipe { }; void Jump(float* vel) { - if (IsKeyPressed(KEY_UP)) { + if (IsKeyPressed(KEY_UP) || GetTouchPointCount() != 0) { *vel = -7; } } @@ -91,6 +94,21 @@ bool IsPlayerColliding(struct DoublePipe* double_pipe, struct Birdie* bird) { return CheckCollisionCircleRec(center, bird_radius, rec1) || CheckCollisionCircleRec(center, bird_radius, rec2); } +void Score(struct DoublePipe* double_pipe, struct Birdie* bird) { + Rectangle rec1 = {double_pipe->pipe1.positionX, double_pipe->pipe1.positionY, pipe_width, pipe_height*25}; + Vector2 center = {bird_pos_x, bird->positionY}; + + if (bird->is_colliding && !CheckCollisionCircleRec(center, bird_radius, rec1)) { + bird->score += 1; + } + + bird->is_colliding = CheckCollisionCircleRec(center, bird_radius, rec1); + + char array[20]; + sprintf(array, "%d", bird->score); + DrawText(array, 10, 10, 12, WHITE); +} + enum GameState { Start, Game, @@ -109,11 +127,41 @@ enum GameState MainGame(struct DoublePipe* double_pipe, struct Birdie* bird, int DrawDoublePipe(double_pipe); MoveDoublePipe(double_pipe, pipe_height, pipe_gap); + Score(double_pipe, bird); + return Game; } enum GameState StartGame() { + ClearBackground(BLACK); + DrawText("Flappy bird", (GetScreenWidth()/2-(MeasureText("Flappy bird", 26)/2)), (GetScreenHeight()/2-13), 26, WHITE); + DrawText("Press up to start", (GetScreenWidth()/2-(MeasureText("Press up to start", 12)/2)), (GetScreenHeight()/2+38), 12, WHITE); + if (IsKeyPressed(KEY_UP) || GetTouchPointCount() != 0) { + return Game; + } + + return Start; +} + +enum GameState RestartGame(struct DoublePipe* double_pipe, struct Birdie* bird) { + ClearBackground(BLACK); + + char array[200]; + sprintf(array, "Your final score was: %d", bird->score); + DrawText(array, (GetScreenWidth()/2-(MeasureText(array, 26)/2)), (GetScreenHeight()/2-13), 26, WHITE); + DrawText("Press 'r' to restart", (GetScreenWidth()/2-(MeasureText("Press 'r' to restart", 12)/2)), (GetScreenHeight()/2+38), 12, WHITE); + + if (IsKeyPressed(KEY_R) || GetTouchPointCount() != 0) { + struct Birdie new_bird = {0.0, 300, false, 0}; + + *bird = new_bird; + *double_pipe = CreateDoublePipe(pipe_gap, 200, pipe_height); + + return Game; + } + + return Restart; } int main(void) { @@ -122,7 +170,7 @@ int main(void) { enum GameState gs = Start; - struct Birdie bird = {0.0, 300}; + struct Birdie bird = {0.0, 300, false, 0}; struct DoublePipe double_pipe = CreateDoublePipe(pipe_gap, 200, pipe_height); while (!WindowShouldClose()) { @@ -130,12 +178,13 @@ int main(void) { switch (gs) { case Game: - MainGame(&double_pipe, &bird, pipe_height, pipe_gap); + gs = MainGame(&double_pipe, &bird, pipe_height, pipe_gap); break; case Restart: + gs = RestartGame(&double_pipe, &bird); break; case Start: - MainGame(&double_pipe, &bird, pipe_height, pipe_gap); + gs = StartGame(); break; }