0,]']±>Sï}WÿÍu§ðp8·d™L)6o;]ÉA¦ösï÷ôôô”°ÂVl†Ìf @2d‡ºÜþ!Tv˜ºÜþÐi€«‰V4cɼi5†»Y‡¬E2Tv˜ªËÝîîîîîþÿÿ^ ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆff`fffffffffff`ff`ff`fffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVeUeUfeVVVeVVVVVfeVeeeUeUVVVeUeUVeUeUfeVVVeVVVVefeU%b%b‚(‚(ˆˆˆˆˆReUˆRfe(VVeˆRVV(feUˆb%bˆ(‚(ˆˆˆˆUV%ˆVf%ˆVee‚ee%ˆUVf‚&R&ˆ‚(‚ˆˆˆˆˆVeeeefUefUVfUVVVeeeUVee&Vf%‚UV%ˆVVVeVUfVfeUfeeeUUVVVbVVe(RfeˆReUPUUUUUUUUUUUUUUUUUffUUUUUUUUUUUUUUUeUUUffffPUUUUUUUUUUUUUUUUUffUUUUUUUUUUUUUUUUfVUePUePUePUePUUUUUPUUUUUUUUUffUUUUUUUUUUUUUUUUfVUePUePUePUePUUUUUPUUUUUUUUUffUUUUUUUUUUUUUUUUfVUePUePUePUePUUUUUUUUUUUUUUUUUffUUUUUUUUUUUUUUUeUUUffffPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUUUUUUUUUUUUUUUUUUUUUUPUePUePUePUePUeUUUeUUUUUeUUUUUUUUUUUUUUUUPUePUePUePUePUePUePUePUeUUUUUUUUUUUUUUUUUf`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUUUUUUUUUUUUUUUUUUUUUUffUUUUUUUUUUUUUUUffffUUUUUUUUUUUUUUUUUUUUUPUPUePUePUePUePUePUeUUUUUUUUUUUUUUUUPUePUePUePUePUePUePUePUeUUPUUUUUUUUPUUUUUUUUUUUeUUUeUUUeUUUefVUePUePUePUeUUUUUUffUUUUUUUUUUUUUUUffffUUUUUUUUUUUUUUPeUUUUUUUUUUUUPefUUUUUUUUUUUUPefPUePUePUePUePUePUeUf`UUUUUUUUUUPUUUUUUPUUffPUePUePUeUUUeUUUfUUeUUfffUUUUUUUUUUPUUUUUUPUUffPUePUePUeUUUeUUUfUUeUUfffUUUUUUUUUUUUUUUUUUPUUUfffUUUUUUUUUeUUUfffffPUUUUPef—`b&`VVeeVeff`VffefPf``  ÌÌÌ \U\Ì\U\ÌÌÌÌ  P±±±±PfÀ ÌÌÂ,ÌÌÂ,ÌÌÀ ÌÌffÌÌÌÌÌÌÌÌf @D@ADD@A@D  "DDDDADDDD "ÂÂÌ\ÅUÅÅUÅÅÌ\ÅÂÂÀ ÀÅ ÀÀÅ ÀÀ `"" ""&""&"" """"``"" ""&""&"" """"``"" ""&""&"" """"``wwwpwÿwwwwwwwwwwwwwwÿwwpwwwwwwwwwÿwwwÿw÷www÷÷ww÷÷wÿ÷wwwwwww÷wwwpwwww÷wwwwwwwwwwwwwpwwÿwwwwwwwww÷ÿÿwwwwwwwwwwwÿwwwww÷wwwwwww÷÷www÷www÷÷ww÷÷ww÷w÷www÷www÷÷www÷www÷÷ww÷÷ww÷w÷www÷wwwpww÷wwwwwwwww÷ÿwwwwwpwwwwwwwwwwÿwwwwwwwwwwwwwwwwww÷wwwwwwwwwwwwwÿ÷wwwwwwwwwwwwwwwÿwwwwwwwww÷wÿwÿw÷www÷÷ww÷÷ww÷wÿwwwww÷www÷wÿwÿw÷www÷÷ww÷÷ww÷wÿwwwww÷UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU0333333033333333333333333333333333333333333333333333333333`»»°»» ¶»» ¶»» °»» »»``»»°»» ¶»» ¶»» °»» »»``»»°»» ¶»» ¶»» °»» »»`Ve`b&PVe%R`fVefVVee`eVf`fˆ–eˆh™&†™\ešÆ,Rœ–Ve™–Zeehi©†ˆi–fˆ˜‰ˆˆ™&ˆ˜ªe†¨*Rœ™Ìe™˜Zlœˆ©©‰ˆ˜‰™ˆˆˆˆˆ™™Œ˜Êœ‰©¼Ê™˜»»™˜º›Œˆ¬©‰ˆ˜™ˆf``e`VefeVUVeVUVeVUUe`UUff03333330333333333333333333333333333333333333033333 3 33333Ve`b&PR%V%Ref%RfVVee`eVf`fVe`fb&fVR%P%R%RVe`eVffffPR%%RPVe``ÌÌÀÀ ÌÌÀ À ÀÌÌ À ``b&`PVeVeffVffeVPe``b&`PVeVeffPffVPe``b&`PVeVeffffPP``b&`PVeVeffffPP`Ve`Ve``Ve``P```P``P```P`<                            ( : < : < N O O O N > = )          ///00000000000000000 0 0 0 0 0 0 0 0 0 0000À?UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVeUVeeeUVeUUVeUUVeUUVeUUVeUVVVeUVeUUVeUUVeUUVeUVeeeUVeUUVeUUVeUUVeUUVeUVVVeUVeUVeeeUVeUVVVeUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUfeefUeeUfeeUfeeUfeeUfeeUfeVUfVeUfeeUfeeUfeeUfeefUeeUfeeUfeeUfeeUfeeUfeVUfVeUfeefUeeUfeVUfVUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVefUVfVVVeVVVeVVVeVVVeVVVefeUfVVVeVVVeVVVeVVVefUVfVVVeVVVeVVVeVVVeVVVefeUfVVVefUVfVVVefeUfUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVUVVVVVVVVVVVVVVVVVVVVVVVeeeUVVVVVVVVVVVVVVVVUVVVVVVVVVVVVVVVVVVVVVVVeeeUVVVVUVVVVVVVeeeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVfeVeeeUefeUefeUefeUefeUefeUUVVVVfeVVfeVVfeVVfeVeeeUefeUefeUefeUefeUefeUUVVVVfeVeeeUefeUUVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUeeeUVee&%b%b%b%b%b%b%b%b%b%bbVVeeeeUeeeUeeeUeeeUVee&%b%b%b%b%b%b%b%b%b%bbVVeeeeUVee&%b%bbVVeUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUVVVf%‚‚(‚(‚(‚(‚(‚(‚(‚(‚(‚((RfeeUVVeUVVeUVVeUVVVf%‚‚(‚(‚(‚(‚(‚(‚(‚(‚(‚((RfeeUVVVf%‚‚(‚((RfeUUUUUUUUUUUUUUUUUUUUUUUUUUUUVeUeUV%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆReUVeUeVeUeVeUeVeUeUV%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆReUVeUeUV%ˆˆˆˆˆˆReUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVeUUV%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆReUUVeUUVeUUVeUUVeUUV%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆReUUVeUUV%ˆˆˆˆˆˆReUUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUfeVf%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆRfeeUfeeUfeeUfeeUfeVf%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆRfeeUfeVf%ˆˆˆˆˆˆRfeUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVeVee‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(VVeVVVeVVVeVVVeVVVeVee‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(VVeVVVeVee‚ˆˆˆˆ(VVeUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVee%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆRVVVVVVVVVVVVVVVVVVee%ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆRVVVVVVee%ˆˆˆˆˆˆRVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUefeUUVf‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(feUefeUefeUefeUefeUUVf‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(feUefeUUVf‚ˆˆˆˆ(feUUUUUUUUUUUUUUUUUUUUUUUUUUUUU%b%b&R&ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆb%b%b%b%b%b%b%b%b%b&R&ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆb%b%b%b&R&ˆˆˆˆˆˆb%bUUUUUUUUUUUUUUUUUUUUUUUUUUUU‚(‚(‚(‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(‚(‚(‚(‚(‚(‚(‚(‚(‚(‚(‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ(‚(‚(‚(‚(‚ˆˆˆˆˆˆ(‚(UUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆXUUUUUUˆˆˆˆˆXUUUUUˆˆˆˆˆˆˆXUUUUˆˆˆˆˆˆˆXUUUUˆˆˆˆˆˆˆXUUUUˆˆˆˆˆˆXUUUUUUˆˆˆˆˆXUUUUUˆˆˆˆX…ˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUUUUUUU…ˆˆˆˆUUUUUU…ˆˆˆˆˆˆUUUUU…ˆˆˆˆˆˆUUUUU…ˆˆˆˆˆˆUUUUU…ˆˆˆˆˆUUUUUUU…ˆˆˆˆUUUUUU…ˆˆˆUUˆˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUUUUUUUeˆˆˆˆUUUUUUUˆˆˆˆˆXUUUUUUˆˆˆˆˆXUUUUUUˆˆˆˆˆXUUUUUUˆˆˆˆˆUUUUUUUeˆˆˆˆUUUUUUUˆˆˆUU†ˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUUUUUUUfˆˆˆˆUUUUUUU…ˆˆˆˆUUUUUUU…ˆˆˆˆUUUUUUU…ˆˆˆˆUUUUUUU…ˆˆˆˆUUUUUUUfˆˆˆˆUUUUUUU…ˆˆUU†ˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUUfffff†ˆˆˆˆUUfffVUeˆˆˆˆUUfffVUeˆˆˆˆUUfffVUeˆˆˆˆUUfffVUeˆˆˆˆUUfffff†ˆˆˆˆUUfffVUeˆˆUU†ˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUU†ˆˆˆˆˆˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆˆˆˆˆˆˆˆUU†ˆˆXUeˆˆUU†ˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUU†ˆˆˆˆˆˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆˆˆˆˆˆˆˆUU†ˆˆXUeˆˆUU†ˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUˆˆˆˆUU†ˆˆˆˆˆˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆXUeˆˆˆˆUU†ˆˆˆˆˆˆˆˆˆUU†ˆˆXUeˆˆUU†ˆˆˆUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUeUUQUeUUUfUUUfUUUUQUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUeUUQUeUUaUUaUUUUQUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUeUUQUeUUUUUUUUQUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUeUUQUeUUUUUUUUQUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUeUUQUeUUUUUUUUQUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUUQUeUUUUUUUUUUUUUUUUUUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUUUUUUeUUQUeUUUUUUUUUUUeUUUUUUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfUUUUUUUUUPUeUUPUUUeUUPUUUeUUUUUUUfUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfffffUUPUUUPUeUUUUUUeUUUUUUeUUfffffUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUUUUUeUUUUUUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUUUeUUPUUUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUfVUeUUfVUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUeUUPUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUeUUPUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUeUUPUeUUUUPUePeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUeUUPUeUUUUPUefUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUeUUPUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUPUeUUPUeUUPUeUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUUUUUUeUUUUUUUeUUUUUUUeUUUUUUUUUPUePUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUePUUUUUUfPUUUUUUfPUUUUUUfUUUUUUUUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUeUUUUUeUUUUUeUUUUUeUUUUUUUeUUPUeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPePeUfPUUUUfPUUUUfPUUUUfPUUUUUUfPeUfPeUUUUUUUUUUUUUUUUUUUUUUUUUUUUff`fffffffffffffffffff`fUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfUUPUPUPUPUUUPPUUUUUPUUPUPUUPUUUPUPU`VUPeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUeUfUVUefUefVeUfePeVeUfUfUfeeUU`UVePePefUfUfUVVUPeVPeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`U`Uf`U`UePeUePUeePeU`U`UeUUeUfUfPUePeUeUeUfUUeUVePfUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfUPUUUfUUfPUeUeVePUeUUPU`UVeUePUVeUPU`UU`PU`VeUVePVUUUUUUUUUUUUUUUUUUUUUUUUUUUU``f`f`fff``PUfff``f`f``fPUf`ff`ffPUf`ffUUUUUUUUUUUUUUUUUUUUUUUUUUUUfffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUpC-- title: Frogger -- author: Jackson Brosgol -- desc: short description -- site: website link -- license: MIT License (change this to your license of choice) -- version: 0.1 -- script: lua titlePage = 1 overTime = 100 px=120 py=112 speed = {val=0} -- num pixels frogSpeed = 1 time = 0 itrs = 0 player = {lives=3, x= 0, y = 0} moving = -1 death = 0 deathTime = -1 score = 0 miny = 112 checkContact = true animationCycle = 240 gamble = false -- frogger = {x1=120, x2=120, x3=120, x4=120, x5=120, y1=112, y2=112, y3=112, y4=112, y5=112} -- car classes: contain starting coordinates of the cars car1={x1=32,x2=90,y=104,t=0} car2={x1=192,x2=100,y=96,t=0} car3={x1=56,x2=120,y=88,t=0} car4={x1=170,x2=75,y=80,t=0} car5={x1=40,x2=160,y=72,t=0} log1 = {x1=32, x2=96, x3=160, y=56, t=0} log2 = {x1=0, x2=110, x3=160, y=24, t=0} log3 = {x1=32, x2=120, x3=0, y=40, t=0} playerState = nil allg = {x1=32,x2=0,x3=0, y=24, t=0} -- turtles turtles1 = {x1=48, x2=100, x3=180, y=48, t=0, r=0} turtles2 = {x1=48, x2=100, x3=180, y=32, t=0} blueTurtles = {x1=0, x2=100, x3=180, y=48, t=0, r=0} home1 = false home2 = false home3=false home4=false home5=false -- 240 x 136 -- Make functions for car movement and checking deaths function titleScreen() map(30,0,60,17) spr(48,40,56,0,1,0,0,2,4) spr(50,64,56,0,1,0,0,2,4) spr(52,88,56,0,1,0,0,2,4) spr(54,112,56,0,1,0,0,2,4) spr(54,136,56,0,1,0,0,2,4) spr(56,160,56,0,1,0,0,2,4) spr(50,184,56,0,1,0,0,2,4) spr(58,204,56,0,1,0,0,2,4) print("Press any arrow key to begin!", 47, 97, 06) print("Press any arrow key to begin!", 46, 96, 05) if btnp(0) or btnp(1) or btnp(2) or btnp(3) or btnp(4) or btnp(5) or btnp(6) or btnp(7) then titlePage = 0 end end function gameOver() print(gamble, 0, 0) cls() -- print("hello",100,12) if gamble == false then cls() print("GAME OVER", 90,30, 12) print("SCORE: " .. score, 89,40, 12) print("Would you like to risk 1000 points for one", 8, 70, 12) print("more life?", 92, 78, 12) print("Left Arrow = Yes", 20, 100, 12) print("Right Arrow = No", 140, 100, 12) if btnp(2) then gamble = true score = score - 1000 player.lives = 1 px=120 py=112 playGame() elseif btnp(3) then gamble = true gameOver() end else cls() print("GAME OVER", 89,30, 12) print("SCORE: " .. score, 90,40, 12) if overTime == 0 then if btnp(0) or btnp(1) or btnp(2) or btnp(3) or btnp(4) or btnp(5) or btnp(6) or btnp(7) then titlePage = 1 player.lives = 3 gamble = false overTime = 100 end print("Press any key to start again.", 40,80, 12) score = 0 else overTime = overTime - 1 end end end function max(a, b) if a > b then return a else return b end end -- Function that makes all 5 car classes move continously; when they reach the end of the screen, they return -- to the start of the screen -- edgeLength and startLength have to do with how many units the car has between its 'center' and endge function moveCars(car, direction,carSpeed,edgeLength,startLength) if direction == 'right' then if car.t > 1 then car.x1 = car.x1 + carSpeed car.x2 = car.x2 + carSpeed end car.t = car.t + 1 if car.t>2 then car.t=0 end if car.x1 > 224-edgeLength then car.x1 = 16 end if car.x2 > 224-edgeLength then car.x2 = 16 end else if car.t > 1 then car.x1 = car.x1 - carSpeed car.x2 = car.x2 - carSpeed end car.t = car.t + 1 if car.t>2 then car.t=0 end if car.x1 < 16+edgeLength then car.x1 = 224-startLength end if car.x2 < 16+edgeLength then car.x2 = 224-startLength end end end -- checks if frogger collided with a car; lWidth and rWidth are for the edges of the pixels (car.x1 would -- be the center of the pixel, which is 8 units wide) function carCollision(car,lWidth,rWidth) if ( (px >= car.x1-lWidth and px <=car.x1+rWidth) and py == car.y) or ( (px>=car.x2-lWidth and px<=car.x2+rWidth) and py == car.y) then spr(371,px,py,0,1,0,0,1,1) spr(372,px,py,0,1,0,0,1,1) spr(373,px,py,0,1,0,0,1,1) player.lives = player.lives - 1 sfx(0,2,30,0,15,0) death = 1 checkContact = false end end function restart() px = 120 py = 112 itrs = 0 time = 0 miny = 112 end -- Checks if frogger reached 1 of the 5 homes, gives a cussion on the x,y coordinates of 2 function checkHome() if py == 16 then if (px >= 37 and px <=43) and home1 == false then home1 = true score = score + 600 sfx(2,60,45,0,15,0) restart() elseif (px >= 77 and px <=83) and home2 == false then home2 = true score = score + 400 sfx(2,60,45,0,15,0) restart() elseif (px >= 117 and px <=123) and home3 == false then home3 = true score = score + 200 sfx(2,60,45,0,15,0) restart() elseif (px >= 157 and px <=163) and home4 == false then home4 = true score = score + 300 sfx(2,60,45,0,15,0) restart() elseif (px >= 197 and px <=203) and home5 == false then home5 = true score = score + 500 sfx(2,60,45,0,15,0) restart() else if death == 0 then player.lives = player.lives-1 sfx(0,2,30,0,15,0) death = 1 checkContact = false end end end if home1 == true then spr(353,40,16,0,1,0,0,1,1) else spr(359,40,16,0,1,0,0,1,1) end if home2 == true then spr(353,80,16,0,1,0,0,1,1) else spr(359,80,16,0,1,0,0,1,1) end if home3 == true then spr(353,120,16,0,1,0,0,1,1) else spr(359,120,16,0,1,0,0,1,1) end if home4 == true then spr(353,160,16,0,1,0,0,1,1) else spr(359,160,16,0,1,0,0,1,1) end if home5 == true then spr(353,200,16,0,1,0,0,1,1) else spr(359,200,16,0,1,0,0,1,1) end end -- same thing as move cars but for logs and lilly pads function moveLogs(log, direction, logSpeed, edgeLength, startLength) if direction == 'right' then if log.t > 1 then log.x1 = log.x1 + logSpeed log.x2 = log.x2 + logSpeed log.x3 = log.x3 + logSpeed end log.t = log.t + 1 if log.t>2 then log.t=0 end if log.x1 > 240-edgeLength then log.x1 = 0 end if log.x2 > 240-edgeLength then log.x2 = 0 end if log.x3 > 240-edgeLength then log.x3 = 0 end else if log.t > 1 then log.x1 = log.x1 - logSpeed log.x2 = log.x2 - logSpeed log.x3 = log.x3 - logSpeed end log.t = log.t + 1 if log.t>2 then log.t=0 end if log.x1 < 0+edgeLength then log.x1 = 240-startLength end if log.x2 < 0+edgeLength then log.x2 = 240-startLength end if log.x3 < 0+edgeLength then log.x3 = 240-startLength end end end function checkLogContact() -- log1 if py == 56 then playerState = log1 if px >= log1.x1-4 and px <=log1.x1+4 then px = log1.x1 elseif px >= log1.x1+4 and px <=log1.x1+12 then px = log1.x1+8 elseif px >= log1.x2-4 and px <=log1.x2+4 then px = log1.x2 elseif px >= log1.x2+4 and px <=log1.x2+12 then px = log1.x2+8 elseif px >= log1.x3-4 and px <=log1.x3+4 then px = log1.x3 elseif px >= log1.x3+4 and px <=log1.x3+12 then px = log1.x3+8 else player.lives = player.lives-1 sfx(0,2,30,0,15,0) death = 2 checkContact = false end --turtles1 elseif py == 48 then playerState = turtles1 if px >= turtles1.x1-4 and px <=turtles1.x1+4 then px = turtles1.x1 elseif px >= turtles1.x1+4 and px <=turtles1.x1+12 then px = turtles1.x1+8 elseif px >= turtles1.x1+12 and px <=turtles1.x1+20 then px = turtles1.x1+16 elseif px >= turtles1.x2-4 and px <=turtles1.x2+4 and turtles1.r <= 350 then px = turtles1.x2 elseif px >= turtles1.x2+4 and px <=turtles1.x2+12 and turtles1.r <= 350 then px = turtles1.x2+8 elseif px >= turtles1.x2+12 and px <=turtles1.x2+20 and turtles1.r <= 350 then px = turtles1.x2+16 elseif px >= turtles1.x3-4 and px <=turtles1.x3+4 then px = turtles1.x3 elseif px >= turtles1.x3+4 and px <=turtles1.x3+12 then px = turtles1.x3+8 elseif px >= turtles1.x3+12 and px <=turtles1.x3+20 then px = turtles1.x3+16 else player.lives = player.lives-1 sfx(0,2,30,0,15,0) death = 2 checkContact = false end --big log elseif py == 40 then playerState = log3 if px >= log3.x1-4 and px <=log3.x1+4 then px = log3.x1 elseif px >= log3.x1+4 and px <=log3.x1+12 then px = log3.x1+8 elseif px >= log3.x1+12 and px <=log3.x1+20 then px = log3.x1+16 elseif px >= log3.x1+20 and px <=log3.x1+28 then px = log3.x1+24 elseif px >= log3.x2-4 and px <=log3.x2+4 then px = log3.x2 elseif px >= log3.x2+4 and px <=log3.x2+12 then px = log3.x2+8 elseif px >= log3.x2+12 and px <=log3.x2+20 then px = log3.x2+16 elseif px >= log3.x2+20 and px <=log3.x2+28 then px = log3.x2+24 else player.lives = player.lives-1 sfx(0,2,30,0,15,0) death = 2 checkContact = false end -- turtles2 elseif py == 32 then playerState = turtles2 if px >= turtles2.x1-4 and px <=turtles2.x1+4 then px = turtles2.x1 elseif px >= turtles2.x1+4 and px <=turtles2.x1+12 then px = turtles2.x1+8 elseif px >= turtles2.x1+12 and px <=turtles2.x1+20 then px = turtles2.x1+16 elseif px >= turtles2.x2-4 and px <=turtles2.x2+4 then px = turtles2.x2 elseif px >= turtles2.x2+4 and px <=turtles2.x2+12 then px = turtles2.x2+8 elseif px >= turtles2.x2+12 and px <=turtles2.x2+20 then px = turtles2.x2+16 elseif px >= turtles2.x3-4 and px <=turtles2.x3+4 then px = turtles2.x3 elseif px >= turtles2.x3+4 and px <=turtles2.x3+12 then px = turtles2.x3+8 elseif px >= turtles2.x3+12 and px <=turtles2.x3+20 then px = turtles2.x3+16 else player.lives = player.lives-1 sfx(0,2,30,0,15,0) death = 2 checkContact = false end -- medium log elseif py == 24 then playerState = log2 if px >= allg.x1-4 and px <=allg.x1+4 then px = allg.x1 elseif px >= allg.x1+4 and px <=allg.x1+12 then px = allg.x1+8 -- elseif px >= log2.x1+12 and px <=log2.x1+20 then -- px = log2.x1+16 elseif px >= log2.x2-4 and px <=log2.x2+4 then px = log2.x2 elseif px >= log2.x2+4 and px <=log2.x2+12 then px = log2.x2+8 elseif px >= log2.x2+12 and px <=log2.x2+20 then px = log2.x2+16 elseif px >= log2.x3-4 and px <=log2.x3+4 then px = log2.x3 elseif px >= log2.x3+4 and px <=log2.x3+12 then px = log2.x3+8 elseif px >= log2.x3+12 and px <=log2.x3+20 then px = log2.x3+16 else player.lives = player.lives-1 sfx(0,2,30,0,15,0) death = 2 checkContact = false end end end -- make sure frogger doesn't go outside the boundaries function checkFroggerXY() if px < 32 or px > 208 or py > 112 then player.lives = player.lives-1 sfx(0,2,30,0,15,0) itrs = 0 time = 0 px = 120 py = 112 miny = 112 end end function gameWin() cls() speed.val = speed.val + 0.3 home1 = false home2 = false home3=false home4=false home5=false playGame() -- print("You Win!", 100,60) -- print("Score: " .. score * player.lives, 90,68) end function playGame() cls() -- background map(0,0,30,17) -- cars spr(258, car1.x1, car1.y) --1 spr(258,car1.x2, car1.y) --1 spr(259, car2.x1, car2.y) --2 spr(259, car2.x2, car2.y) --2 spr(260, car3.x1, car3.y,0,1,1,0,2,1) --3 spr(260, car3.x2, car3.y,0,1,1,0,2,1) --3 spr(262, car4.x1, car4.y,0,1,0,0,2,1) --4 spr(262, car4.x2, car4.y,0,1,0,0,2,1) --4 spr(264, car5.x1, car5.y,0,1,0,0,2,1) --5 spr(264, car5.x2, car5.y,0,1,0,0,2,1) --5 --logs spr(289, log1.x1, log1.y,0,1,1,0,2,1) --1 spr(289, log1.x2, log1.y,0,1,1,0,2,1) --1 spr(289, log1.x3, log1.y,0,1,1,0,2,1) --1 --spr(292, log2.x1, log2.y,0,1,1,0,3,1) --2 spr(292, log2.x2, log2.y,0,1,1,0,3,1) --2 spr(292, log2.x3, log2.y,0,1,1,0,3,1) --2 spr(297, log3.x1, log3.y,0,1,1,0,4,1) --3 spr(297, log3.x2, log3.y,0,1,1,0,4,1) --3 --alligator if animationCycle > 160 then spr(361, allg.x1, allg.y,0,1,0,0,4,1) else spr(326, allg.x1, allg.y,0,1,0,0,4,1) end -- spr(297, log3.x3, log1.y,0,1,1,0,4,1) --3 --turtles spr(266, turtles1.x1, turtles1.y,0,1,0,0,3,1) --t1 --spr(266, turtles1.x2, turtles1.y,0,1,0,0,3,1) --t1 spr(266, turtles1.x3, turtles1.y,0,1,0,0,3,1) --t1 spr(266, turtles2.x1, turtles2.y,0,1,0,0,3,1) --t2 spr(266, turtles2.x2, turtles2.y,0,1,0,0,3,1) --t2 spr(266, turtles2.x3, turtles2.y,0,1,0,0,3,1) --t2 -- create blue turtles1.r = turtles1.r + 1 if turtles1.r > 350 then spr(331, blueTurtles.x2, blueTurtles.y,0,1,0,0,3,1) --bt else spr(266, turtles1.x2, turtles1.y,0,1,0,0,3,1) --t1 end if turtles1.r > 470 then turtles1.r = 0 end -- background coverup for i = 24, 104, 8 do spr(321,0,i,0,1,0,0,4,1) spr(321,216,i,0,1,0,0,3,1) end --changed to a for loop --[[ spr(321,0,32,0,1,0,0,4,1) spr(321,0,40,0,1,0,0,4,1) spr(321,0,48,0,1,0,0,4,1) spr(321,0,56,0,1,0,0,4,1) spr(321,216,24,0,1,0,0,3,1) spr(321,216,32,0,1,0,0,3,1) spr(321,216,40,0,1,0,0,3,1) spr(321,216,48,0,1,0,0,3,1) spr(321,216,56,0,1,0,0,3,1) spr(321,0,72,0,1,0,0,4,1) spr(321,0,80,0,1,0,0,4,1) spr(321,0,88,0,1,0,0,4,1) spr(321,0,96,0,1,0,0,4,1) spr(321,0,104,0,1,0,0,4,1) spr(321,216,72,0,1,0,0,3,1) spr(321,216,80,0,1,0,0,3,1) spr(321,216,88,0,1,0,0,3,1) spr(321,216,96,0,1,0,0,3,1) spr(321,216,104,0,1,0,0,3,1) --]] -- up=0, down=1, left=2, right=3 -- clicks you into grid if you are jumping down from logs if py == 65 and moving == 1 then if (px + player.x) % 8 < 4 then px = (px + player.x) // 8 player.x = 0 else px = (px + player.x) // 8 + 8 player.x = 0 end end -- regular movement if death == 0 then done = false --check if movement is finished if player.x== 8 or player.x == -8 then px = px + player.x player.x = 0 done = true end if player.y == 8 or player.y == -8 then py = py + player.y player.y = 0 done = true end --[[ if player.x == -8 then px = px - 8 player.x = 0 done = true end if player.y == -8 then py = py - 8 player.y = 0 done = true end --]] if done then moving = -1 end --if movement finished, check next move if moving == -1 then if btnp(0) then moving = 0 end if btnp(1) then moving = 1 end if btnp(2) then moving = 2 end if btnp(3) then moving = 3 end end --each movement characteristic if moving == 0 then player.y = player.y - frogSpeed if py < miny then score = score + 10 miny = miny - 8 end sfx(1,30,8,0,15,0) pr = 0 spr(404-((math.abs(player.y) // 2)), px + player.x, py + player.y,0,1,0,pr,1,2) elseif moving == 1 then player.y = player.y + frogSpeed sfx(1,30,8,0,15,0) pr = 2 spr(404-((math.abs(player.y) // 2)), px + player.x, py + player.y-8,0,1,0,pr,1,2) elseif moving == 2 then player.x = player.x - frogSpeed sfx(1,30,8,0,15,0) pr = 3 spr(404-((math.abs(player.x) // 2)), px + player.x, py + player.y,0,1,0,pr,1,2) elseif moving == 3 then player.x = player.x + frogSpeed sfx(1,30,8,0,15,0) pr = 1 spr(404-((math.abs(player.x) // 2)), px + player.x-8, py + player.y,0,1,0,pr,1,2) else spr(257,px + player.x, py + player.y,0,1,0,pr,1,1) --spr(404-((max(px%8, py%8) // 2)), px, py,0,1,0,pr,1,2) end -- road death animation cycle elseif death == 1 then if deathTime == -1 then deathTime = 80 elseif deathTime ~= 0 then deathTime = deathTime - 1 spr(374-(deathTime // 20), px + player.x, py + player.y,0,1,0,0,1,1) else deathTime = -1 death = 0 px = 120 py=112 itrs = 0 time = 0 miny = 112 checkContact = true end -- water death animation cycle else if deathTime == -1 then deathTime = 80 elseif deathTime ~= 0 then deathTime = deathTime - 1 spr(358-(deathTime// 20), px + player.x, py + player.y,0,1,0,0,1,1) else deathTime = -1 death = 0 px = 120 py=112 itrs = 0 time = 0 miny = 112 checkContact = true end end -- Car Movement moveCars(car1, 'right',speed.val + 1,0,0) moveCars(car2, 'left',speed.val + 1,0,0) moveCars(car3,'right',speed.val + 1.5,8,0) moveCars(car4,'left',speed.val + 3,-4,6) moveCars(car5,'right',speed.val + 2,3,0) moveLogs(log1, 'right',speed.val + 1.5, 8, 0) moveLogs(log2, 'right',speed.val + 1.25, 16, 0) moveLogs(log3, 'right',speed.val + 1, 24, 0) moveLogs(allg, 'right', speed.val + 1.25, 16, 0) moveLogs(turtles1, 'left',speed.val + 1,0,16) moveLogs(turtles2, 'left',speed.val + 1.1,0,16) moveLogs(blueTurtles, 'left',speed.val + 1,0,16) -- Death if checkContact then carCollision(car1,4,4) carCollision(car2,4,4) carCollision(car3,4,12) carCollision(car4,0,10) carCollision(car5,2,7) --Hop on log checkLogContact() end -- check frogger coordinates checkFroggerXY() -- check Home checkHome() animationCycle = animationCycle-1 if animationCycle == 0 then animationCycle = 240 end end function TIC() cls() if titlePage == 1 then titleScreen() elseif player.lives == 0 and death == 0 then gameOver() elseif home1 and home2 and home3 and home4 and home5 then gameWin() else itrs = itrs + 1 print(itrs) if itrs > 60 then itrs = 0 time = time + 1 end playGame() print("Lives: " ..player.lives,200,128, 0) print("High Score: 1356520", 75,1, 0) if 60 - time <= 0 then player.lives = player.lives - 1 sfx(0,2,30,0,15,0) px = 120 py = 112 time = 0 miny = 112 end print("Time: " .. 60-time, 8, 128, 0) print("Score: " .. score, 100,128, 0) end end