From 2b425186d1a22629eb33d016122251d0d487e30a Mon Sep 17 00:00:00 2001 From: Thaloria Date: Mon, 31 Oct 2022 15:59:34 +0100 Subject: [PATCH] added fruit game support --- combined_user_interface.py | 18 ++++- control_elements/ok_button.jpg | Bin 0 -> 11935 bytes fruit.py | 137 +++++++++++++++++++++++++++++++++ fruit/blue.jpg | Bin 0 -> 5501 bytes fruit/green.jpg | Bin 0 -> 5291 bytes fruit/orange.jpg | Bin 0 -> 3882 bytes fruit/red.jpg | Bin 0 -> 6728 bytes fruit/yellow.jpg | Bin 0 -> 4428 bytes game_base_class.py | 1 + 9 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 control_elements/ok_button.jpg create mode 100644 fruit.py create mode 100644 fruit/blue.jpg create mode 100644 fruit/green.jpg create mode 100644 fruit/orange.jpg create mode 100644 fruit/red.jpg create mode 100644 fruit/yellow.jpg diff --git a/combined_user_interface.py b/combined_user_interface.py index 27414d6..aa643fb 100644 --- a/combined_user_interface.py +++ b/combined_user_interface.py @@ -32,19 +32,20 @@ class PrimaryOverlay(threading.Thread): self.Emitter_Box = ttk.Combobox self.RadioButtons = dict - self.RadioButtonNames = ["Equip", "Crops", "Farm", "Magic", "Craft", "Mine"] + self.RadioButtonNames = ["Equip", "Crops", "Farm", "Magic", "Craft", "Mine", "Fruit"] self.RadioButton1 = tk.Radiobutton self.RadioButton2 = tk.Radiobutton self.RadioButton3 = tk.Radiobutton self.RadioButton4 = tk.Radiobutton self.RadioButton5 = tk.Radiobutton self.RadioButton6 = tk.Radiobutton + self.RadioButton7 = tk.Radiobutton self.StartButton = tk.Button self.StopButton = tk.Button self.PauseButton = tk.Button self.QuitButton = tk.Button - self.TkPosition = '133x305+60+600' + self.TkPosition = '133x329+60+600' self.setDaemon(True) self.StatusLabel = tk.Label @@ -72,7 +73,7 @@ class PrimaryOverlay(threading.Thread): self.rb_int = tk.IntVar(self.root, value=1) self.RadioButtons = dict() # var = tk.IntVar(value=1) - for i in range(1, 7): + for i in range(1, 8): self.RadioButtons[i] = tk.Radiobutton(self.rb_frame, text=self.RadioButtonNames[i - 1], variable=self.rb_int, value=i, command=self.radio_button_callback) @@ -276,6 +277,17 @@ class PrimaryOverlay(threading.Thread): self.SpawnLabel.configure(text="") self.EnergyLabel.configure(text="Runs:") self.show_mining_overlay() + elif self.rb_int.get() == 7: + self.EnergyEntry.configure(state=tk.DISABLED) + self.energy_use.set('') + self.SpawnEntry.configure(state=tk.DISABLED) + self.spawn_use.set('') + self.Emitter_Box.configure(state=tk.DISABLED) + self.emitter_use.set('') + self.EmitterLabel.configure(text="") + self.SpawnLabel.configure(text="") + self.EnergyLabel.configure(text="") + self.hide_mining_overlay() def get_run_mode(self): return self.run_mode diff --git a/control_elements/ok_button.jpg b/control_elements/ok_button.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d78f58670ff146c2d517e63a46d700442e0f4a30 GIT binary patch literal 11935 zcmbVyc|276|NkjTi6kMy6qO`N$Zpyvx-|(YVk+4~lI(LTNrb6{QcRj;H`&WJ*=0%g zEe4Z)n=y=8&dhv|?!BMS_uhYg%W=*;ocDR3_xrUx->>&;Is9J!FtEk+w8?2;&6+j9 zHTVzU4*(~CwQJU_o_`$zf�@`gQ9B1clZM39VimHg4LuVT14nAt7N=Vc|_8@FBEu zvzVyJ=GFgK2U&f6^)2`m*&wuGwa5S4!T$<~ZvgOXb_%Rf1lEeL5fER)uK^GMutpH3 zc9r12jx}oq)(NhMNfO=!cPQKflP@5!7A973-8#5;F#H@?CoZ^km&UR65@y$h6uq_` ze(*ebgVOQbO390D)ZLml?mXNmEG4~NMt09$<$WsqwX~1u=<4a8IC<(c>Wqo0xrOB= ztIJoc?Qc3bIyt+zdf)ZA=j-Pm5b`MWaoCgah!-(0W8>mqy-s*f_>l53H7z|OFTbF$ zsQB}jlB(*O+PeCNZ;kC8on75My?y;7qm*A`;}erp)3inU(lTR($zreawFVIQldb=7 z_AkD~VZPSFI#?&P%Ga8;zVIa=zD{tL#`>+t%!ICcNhltEuwmQr=gGO18>}965v|o*pJrNE{Fw5Qs2xd z?C!kLG22zNcm8H#!|vU#dXBo2$XN9{v50=FN@SQmKD_X?%z?WN#d#lfnrlYvF9hUk z0Ksk)J|NaV%?D%*tqlVy&&OS3910S(5`Q?yO~hK-C0!qms|)a*f>IA&KGEOB1f@9Y zT}w!8@^MRtCW*G?*8b9ZlK2=Oh_E{Oi5mT)Zvf0DTpemmCG07QwO|{_u{XzdPDu}` z2X615sV|AGiF_9yb}l#EX7Zzy5wdbJ@e4VJwE#U%@Os8j-H4@Ufhvpx-258yl7Sn@6uQm_ z8kRPZB?RC(i;DTc{d))qckbcXJgIBo=eMLc_ItBYA6+GaThz@xQ!?>W)~8dfsKiR} zxv0$@#GLvz@W(u_6?#3WJnqi`$#;6h> zxIG0j6P_DO`=zt}Fg1v%$Pl(=prJh_&_q*8lK8P zjE5p{&ekH93}!HYGQa#oy$UB;3^mEFP#pQd$a&18qywI;IPF$w9Y{@`)xgu|;jYkH zZ0-qG&k(730xT#q;{zuu3jdOp34;$v@BvtPe+i<;)Od?uA!+=|s#+vTRq?!S3r|Ut zSGq}5nKX8VCNKCbA2yr7eS~!~G_!yi_eR{J>2NpqlX+`;!9}Bg-ra=!CNl6)iTS zW!HfTI3&sk!W&??4*ac@57HHT5%m8KSg2gh2ezDADUf%-7Tp0uE#Fk@XBV?uR4<}e zvfqNH-?C2nu42cEC6!S*w`b*j*Z_oHrSNa1m}-kj;8=-;e`Cp~=1xC;s8S1DNS2iD z4@=G}FYAF0YmHUF^ZZMnC`Nn)a?%&p*6$@Xg?CkWj4Kp7f$DbR?lwM+{3m{vKo>s( zFD%&YFKNGKBu_d^pZL+X{F)D#2q~$~1P~(?I~)Qr3ey)%BhI)K49HjnTO9wu^J#WQ z6sF=Tc6`H0PTo^E*lx9hxTNJ4*n5Av)uT2J{r)iJ$5OWEcDp|q?{x{F>cSZc%SwF$ zXMTl?y&aoyE&z;6O%D57mtxTBJ=q$HkcNzC`BmXrOi#0?7xEkz$(~KSH|wb=CRsiX zK#bXH2dNPUT=~HIAnTyO;p=15&qfN}wd6m!-J`@^vP-)5>v5gG5t|!I4H^9&L(3oO zem&|g(>Lp*Tbxm$Q}uO(a7|1kYXj1B>Bfj|pmiWtg#i+#Z{Ikym~!w^5Q*dDR{-7M zeptc?5L=U(`z5=zwUt$j1|m<%$Zzi239IVoy>Ya08N9+OK3C{7lWD58dygqIh)*Vp zACRUVT|LDIqCY{I?PcmIpxf1EXtog7;)y*fKu4zdzs^cIa6DQ5eKymUr%a0Ph%(eE z2=;+3mQ{7X0%WqYDe0(@^o;GcOX1rmM1rTYUrA9PK&bTek(id(R!F}GR}H%_p+sF@ zy!monY4h#Om`Op~PaO)XuYNh-@Ii@OM3*p)HtSVpO116D7|~reYB8Az>?1B`dXi8xM!s&l+0tA6lNOuW6=v?jv!0L7-XdKwg0QvQg@RS;3)>6k%=Z<-_mvDj@FWvn}M80Z3>yY1Odhs(TF4Zhtog%~MSB;MEvU@PThznP=CRG_4YS zjSm#!L#$G|D8Xvh@4^0=s!i?Zj#b3fLvCZ|>Z0mWn8|OApTPpa@PXaPWh=oU32Eqleu~INg+fg1CEK7HWx-_;_bg{FfZ|eS=KOaonHpq zFUVw9^ok!x%Tqm8oaQ1uK+nzA<2Pl*(sT zYC1zQb(TCF=vPM;yP~^%qXpkx7RY$V3?9a8m^v=6u&ubKtd?6_7W!O*S^V(4Q7KPy z>=JKJr@LC&E8>FE(~mW;AM&o$njbWo!I;1G`nXB*kzbJU`YoP0(L-?&J*`y3vdw1U z1Y67WCof-2+;SvFZv1!r7*NSDM}YnICax4&NU>OqSRlp zDbeIk1LwfrgJ!SCu)!$Kc4jfW&CV%j`^i_F6RUexl>2d??wNx>Ze0F4sk2X+2ZWHM z4b2@(uo=B0yIJ+c+5W{fQ31%cK^K{Bqo9VpKIX~rLq{WQtNK3VrC>%=?8 z3%7|92pxDRRrZyqbBU{8Sf$vOAs4Lpb-}@!oj*&Tz1Xs`YVlOC6Gz=OUVo)p{@(N) z)FZ93wdjy(nh-0O7+oQ8Zj5;u$MzsMSoL7?ECwnz&ZNSyE%8T}nEAGbE$?jKl)UucGk_R<|G% zqntIK8Yp|7wphbx`okH4^!IscW$1N$!0%P-7YaSI%{Hs)<+bYG@zmFEUl8^|XYx-S z8|Q-7hGgOlN<%I!DI%nW%`5OHVY;KQjh$SwQ1I+oCagAj3+-2a|Bj9&W&dt^rDtX& zDfDKU>%7_|SJ@aonf7~-)u!>y7HF$W7c9K{^B{O&D~b8dXw$TY?_LL3A>Ft`0bM~j z^V6vGjB(Ae1OETJh44!6tirWrLbF04Mya#y`7}J##rju9&UB${tA=H*t-$|oak}c- z&EPtGTe5SFs(;di7=#F&Nv^SdA8ym*8h(B*kM29%!VKuv9;21L@jdoK%=Fz#-RY(y z=yWY|VPJP|o`K5sm)g^}5d}iw@m2bNSnV?WW_LpF=+ZZtiGc{#SxQm4caC2W+Dp?! zyHBzU3UeCUU5uomr})4!oe$(`2UXJ?JvFPof*n4*(-m)a5fCoI>2BWb*?Pe? zv2!;Np?SBc-}pdI3ltjc#n}t{c~Yu&$mK1FMtzpV$OD0D*xcK`VF|PA8P=sX==-vq z;z3@!89pu2ijXihhj~d-lC`=!T-Gyw59v&plRR_P5r^z28H^jD9c?+M5Y8EPV4(t7 zC|5b#L~>3=1<;OIzDB3%X25OmdGLCmrYmBb?FlHbo^w3Anxe!9)D$7h%mg|&4L-lT z{Pc2Ya&{NZGOPSb2N#ZNg!83xJ=IM*Xt%6HCpcykoQoR%LHe3Mwq92ryoP-o@8efr zi;gT&uOw|kXS(@*>L2)8T2%1Bw&H%08@-qj!3RR_dn|E10>#3lUJT9JOS4aky+8?V zmz=)|>AZ4`?mc6BuvEQ_=52Uh0wCI@;5|}jzEA5|4Hx!6QcjFVNegpfN55Fi@BxK8 zv#=BG)>*NZ4^-CJ9q1_Z%Qp1C?(TVOyXtl|lV|sqhy>!uNAL4*-fna72%q-T`ivJ) zS^V~y{Sn(VPw??W&n|G>nII#M`c{@0<~jGvr1Mb39|xL}YQ3M^;gHelTi5Sb{3(P` z3)&N8Gj~(cIeQu`*v5`E0=WSX;>tI}G)@DtWc!m~yfef7X z?ktUKX;7WE@jzNr(adm7iVk;;p*p-Zk=R{~SL&PTZ!Nd?yn9dC1BN3s!bc6I6fy~x z1wApyySsLb2@DnJ2t$v!QKaDli~`BI^=ZJtH_D+}_}Q}q59C`qFL^#X@$<;f0AFGe z=z;GK85R4A@9Qcv8E(<o)L5BwsDz3x^VStY>q=_#(_jB=A-opaHHIwA{>rQTB*4R>c=x;L>a{95%$s13 z1H3wM+{~2054{tq{X(mcJZl!k9{2D{)fcrHZ;i69LA4Q=KJ+}d8Tpl>CC~~Ldj3+K z2K(xQN%=bAV%(EIz{w02>MO4J1ai5HloEW3V`Ngyu%W5&fwU~JasQIHGp7&>KHqMe z&L%dKVSnaH$b)rZ_~G5ljBK#b>g}eFLfLm^#h$L~eLQyGBZ7Qt`aRDQ=>6Y2OAbS2DLnm4Zy;PZ7@{wY$S86zWoJg^Nuo2&cYllwCb zYKPQ|sh*EL3vG%liav#Ye2zOx$UZk7*wY9{iB^cnc1Vf)dhcS&KA)I9uXj@P%@q0pefzvM8W4HjLaPl4#!V# zfM({9OyziJE2?T}D|OFf62)y@=dxRhw793BsVdMkFhqh!xP}xyMH7O3tGUq8@E87@ z4q?3`t(JC;lzOEy?^OwoTq}w`WCUDLU0&FtDRZ;eRqymwmXcdhfhW6rVjSA>Alk() z$02GZah8~;$3i-hg_=GDhZY3dyBB*55>m%70$?Q?IUK{@?`JwwTOpWhW0GANH@czH zzCa`&)aUM{8%>9W7n}()duQ8w6`&5*wCO78t-IDUE~CDca%a}UYuor-u;r37=V!;x zDvGndX2jyXUS0s{Cc2+ogUQ3xl)9T%je>axl5^Zcz$}4cZO#No7rNKMGY(SgSf1JV z;<}c}gu7nv*qvj@Tb~#CB!7+W6(Tof?rEt}}jJ3!WqwjXg)^5uYZ07wY{klnojt z?V^mzw{o#~u5f0RY>c0No9B7YHi=O~#axSoIX1o=q@F2(b5UvCCfw}|KMS9%`#f-quaNjjhtX-c*9eMBz&un z8$21O2@aM$bz1wZ*DHi>{~WU}NI-}&#?2Wv*6O+$y(2xUL49A<$b$_!;+0E8r2`}J z5zQJhMK|!dsVYd?6&}h_$H3yy-8+zc`G@!MDLvx>7)XM^+c=ZO>nBMdNA}YWh)IV@ zncbdK42sV%X?&>fL+o!2C2iC~JTjIjY+DN45g2H5a>Kiw--XV*hE?K11Jo|BFt7Kmn5iLcdVlJh zCD_BUYV;&*)>&w-BzBVcKw5=|DSJOWpz997Wn{KOVrVGL7huS6`l&dggOQfib^s%buH)1 z&Y1$9E#}_rn2TPA1oFX|qCTdKLG(NPyQ)? z*s~B@lw4Z*Dg!&P+k(!Mm!)v5QOI=LztAiMb^KpBW>Q_ zuKql4{JyLh?ku^dB8!pd5jD8o*G@H}!bWCBetRd*g5!X=m80|rGrH}5u}K*id|GVG zrrUT=QD?k{=_5XH_pLb7D#l9iBEBZ#oTk&<%iz4UU?Mb*gVQ%}yA_(>^ML`?5hPRn zk)|s$9}@;;@fOS-Zw0tpbA0E(3GHDr)eI9-PqCVvN&lM5dNGx2;w{TA5)2j+wt6hB zQ$4Dj7Y_;4j2_U+m2q%AG*|=qa_>VIlEk=akU_B0lWygmxhu8c(ImMp{skY~I;N=%>J-Y5~ z?=E`vq!Bv}ZJU&l_R)`X`*_aq7FKO|%c`)l301;Hd#%bL!>qaEh@>yVmE?It-1q!f z;PB~y;B#2SY-{(P-Ni^n?I*z}9-lW?khPku;s{u~T@6tk@)xB|*-TrDXKUMDc z#{75{LAD$Y73MS^!5HCcrp(!`l6q$Shf7%=!9>p8tLwS35FEnVIk9@^M2en>oo1(u zpX!|&tPgiH_NVVIk^@m1_970hK5repDdD#`hdx~jCv(V_xJStO!Ugh@YK;%C&2*4t z-V4In(?0WhQjvY|i?6oYkCOy89+5gJ6iLyZFy2j_FXre$)`2cH-97!IZ^DR5oj+!J# z-IkMxvnT6H_T8s2JHKZ*^gc;zFO66pz?kEuD;FPIiMUIRUHsYF(e#6@#M>Ccaku7m z;@8h5mwvJ8S(-dn68Zd#Rj7>QvUGnODG}@qWPI%812-3u-k{QYX$ zcQL=$SD-nq@MFS;!SQe0&I!79%QWxE=dQ!=SZ1IP3X`5wq8DtMF#Dh&nskMhb?@j0 z-8c+p#CrUo&lUB(htJf$E{VB}hrz>f``cA4QDyw`$klx-w1KxTt zC0LuP=uXNdMj|*R1(@%$EZ@_}Nsy|9K?kk5$Om%OqrJYJGu;a%2ro2W_d7G1thQ^K zr1_Kwt3sE+F^5L;us?%I`o^n2EYh`L`4-PPG(7@Yi2SaqJXb$JC;a~D75uZ^EF;!X z;tImUn4I|gN8#(iyG3^T<)1kDQkePAKUJ-JM)7EU^0XN#<#zhrMMSLkQj1M-$NW5U zEUt389>EP5Pmedl*NSs&6hho+V(2e3swacx&u{}Q)0Yj@Jieb1`P8y4v+$*^o@AxX zB!b?Ju5{%VMoN)<)}y??<*3~3T<|;ci00Z|*!rE!R9S!|+%C35s6YyGKS-or^K-ZD_zSBM#y4zE(#Kl&(1VG z>DxLlb3*ZjMn|?^4xBt(hkmR&_{q&`VKbJtDPai{0#Z@LREce%i1*KmLeSwS%H2fTemgtl1DAN)JRn9Ni zip70hnW@G0LJCaxR7j30`uJ&T-Sbl}!b-7nnrj}qJ!X0mrpOx$9CCl$osl;lJZk%? zwm_WKgHpy3cSpTsArI9LA}Mx4l8&#+hCW>1MleN+puNNL^sn5Kdo!M{)VX~fUNQ2oAd)TEY9k2_r)BFY{2 zZ1fghrL@H%u1%;}(ZBoNT%s;n zjx8q(S0h7)Bd{GjA>4^hZIh*j3#kig@dpNi@3@U>24$)f6ZSI$hh!@H_k#v=3X3~t zR07V)G$u^XJwMP9=~SvvNGHuUQD5>}$eY{^HJ!4^u7?KVu4{e1WRN?xl(Trw&IQ+E zn7!-@9j`!b?|MNnsAC)4MOvjqrt5q8*t^(RjtAWAZ1WK9J2e8AqHn zxAXHj9MI)9cW;v*i>%g%+THOOEl4wnoqN+K9~REr>#uLmx{#)JKjnKM+e$omlv93^ z$8b{O5FW5D9U%}+($2-)C(P#rSc1g}&+nz_V@o5{nxVt@^0i5@LE87*YGvV9pW#-2 zN{sH$yMeCYTQhDt&+7{Ef14$9CN6lw<(U}UjVtO8hm5}lQ^BwG%Q>a>J$r5S#reQF zgJ4lFeK>^#R}CHrv*q#<(~0J_%?_}2)#?)-pv_=xcntwg&~8NT3NAa^gg%DVhdvQ- z-1QY_+ip2loO@P%pxI`P*`}?aFh`TOao|1K#cn&zI4rZju)zA&*(Y1k6^$14d##Es zW)^H^9uXQwhq8X9Zse%DNWRZEG%3?c{Xk?!xKLZUaDZ12vX?uV@zt7sZZ*;+K{MgE zQvGaxrYj*$35*kV@~t*Ww#~;z@N5ro0naNp3epP6%E5+6<}yy8`b4ES`^!9MV%N=- zS7h@f4XuN=Bq^e69CL!7wJ}bdJ!W_E%zzLe_AZ4UW%9ef?52xI-L?tYnAyj;JXtN# zGY|#!*7f?0mNxVZ+E&(gN+fLZW9+D6@mptllr3iSU@=tM#7y5t8?ou;193w1l-A9Z z&Q^Mqf>*XW^Q0$fB8+E@tc&M~Zz8iskqfyzt@0G(No`F-ibY}e&E8{$=!L6Za|<^4 zOzXuV#kmbtxCI<7$CX|c5Ia_VrkfjprTHNewe^GBZijfx)@o|XjmNZTX9P*6;aG6# zqv0t}tDA~_M_QaFhX`<8StEn;dz})T>E|$>o5;#g$vLJ-r)RP)s=M23`Glq4gBt_2 z-qqW!EMw%^vVne8$92PnI=cg>7Evn%ujOsk9w^rXPkx8VJ}atB-XSE0%#8~Thb8mF`0=3`yGTB%%sPmaxnsEVdim%3riXw8;DKS@_-S}v!7 zji|ErgjB&O{1#}hRiiD^D&g!+qd)BI1(6Z{PBh|is!lYfQbDbtQ{q5wMPEE;((gJ8 z`|gr2wC(9v31|oReF6T7)RX!@XmU4pd@WCnI{pcUGwKu0$93Xbw_?|U_n#lsJZnyF z3%l)4d{cALXOGCqBQG!kKiRj!Bu#TfM_fH}D$wlQc~BlJf_q|CKZ+B(F*Sd~DnXZ} znWO827^+_v7|;`LGSa7bC+o;3-JOx*w!}(uzc6LwCHZEVRcZU~Tdyiv!$y5z8qu`? zEg0lh$T=zMOH9D`WTA*DPN_n_TgW&Ba|aFrr7yrxA2GF^VHH;b={m09U{87|0*2%kwB5M1ID$ z$J5oz7C%rE3xd@s=`ly6gv3uH*VuizPQ5feZ&()BJ;BL251N)DzAD?(U8PP;iaK&r zEt(x7t84ojXwOsJ<@RkO^@aVw`pkuMj52*X=isfdbvfON;rj^B5>_4&gG&@w1{sI_ zwNI5=>tfZ*>CIA(mneVFu`+sqEzrqAvfS$sxMdp+ZFJ2xBw1awd!c+wUh*5=o(kVR-U7HEtbk${1P(^iY!4w8#_Vkt{c<7+R^r* zaqSR-h0r)h?VdmQgt(-Ao>JM-&j+$Xdwvonm%3UjZ4BT5Zx<2a|8S@PN^z(`62RyN5<6u7U=q?-kQvGq$k+sXj8#IO2@13WygGO0s zTAA6ypMON&1rp}OVAxV_HFaK zhk*&TG=)&<=!(OTAvLs2oMj!IE7GG;_YOO$E8;bqbRAMXw(M6>s^YQNOYTszuYIrZ z6ms~j@ftiuc}^lT=xFI_SC$WH02APUYgFVJBFVQVt z{PYNqXfU2Ke<+sYR>)lSy(?)8)do#Zi5sW81IFKObZCCxK4SIB!TwWHpXh+DylTi( z29{YbOyP)%bRh z?NdImHjBg@lj{T%kO5-Z=Ci9=>X*zgUPu6mx4wxF)WR$BUz8z$io&*GUp?xIket7cei{k{Sjq@Ye74LWn26k!Z$FM{8U(vw$I9XShyXnC zXhtiv4-rXPTJtwo>X0T}VDV%FwSSSCI0b59m(;U6W*bTW2QJ~yo*skD7Cvxv`(L!c zf)L>Yv^Tu_8h@$e{SxW7)ZpO=wRVaKx?DH%H)-*_t*zqV4{unBzvcf4>BI*j>v`Ay zelr!UHV%T@-iiDrw0-4>aokYI%w5jmG@8?sdZ^w9_a9}F#bIUoUV#ULKdH-r6L2Cd z8vegz5O^|l3X%)l_)EE_OMfc!;%pIHhneJH09T&HRU3 zSVtn9TSG!{n(04`sfc|QizNJ)bHd6hZiTw1vSSWMb$frmNO+CXkLylu*LX!e>@f1wA*ynvTM zPX4_D^`<~W>=NQ?nB&cP61<(2;yG+G<;*$yW{;fTG`izf@AQKKIkWt}{{aMB{f7Vm literal 0 HcmV?d00001 diff --git a/fruit.py b/fruit.py new file mode 100644 index 0000000..1543066 --- /dev/null +++ b/fruit.py @@ -0,0 +1,137 @@ +import cv2 as cv +import numpy as np +from utils import mse +from game_base_class import GameBase + +GREEN = 1 +YELLOW = 2 +RED = 3 +BLUE = 4 +ORANGE = 5 + + +class Fruit(GameBase): + + def __init__(self, overlay): + super().__init__(overlay) + + self.data_coordinates = np.zeros((7, 11), dtype=object) + self.observation = np.zeros((7, 11), dtype=int) + + self.colors = [GREEN, YELLOW, RED, BLUE, ORANGE] + + self.fill_data_coordinates() + + self.needles = {GREEN: cv.imread("fruit/green.jpg", cv.IMREAD_COLOR), + YELLOW: cv.imread("fruit/yellow.jpg", cv.IMREAD_COLOR), + BLUE: cv.imread("fruit/blue.jpg", cv.IMREAD_COLOR), + RED: cv.imread("fruit/red.jpg", cv.IMREAD_COLOR), + ORANGE: cv.imread("fruit/orange.jpg", cv.IMREAD_COLOR) + } + + def fill_data_coordinates(self): + # 540 to 1870 = 1330 / 11 = 121 + # 180 to 1030 = 1076 / 8 = 121.4 + dim = 121.2 + for e in range(0, 7, 1): + for i in range(0, 11, 1): + self.data_coordinates[e][i] = [i * dim, e * dim, dim, dim] + + def assess_playfield_and_make_move(self): + + new_observation, new_screenshot = self.get_current_board_state() + + # wrong movement detection + # last board state is same as actual + if mse(new_observation, self.observation) == 0.0: + # no movement detected -> blow explosives or reset + + self.reset_counter += 1 + if self.reset_counter == 1: + pass + elif self.reset_counter >= 2: + screenshot = self.capture_window.get_screenshot() + if self.check_for_button_and_execute(screenshot, self.reset_board): + cv.waitKey(500) + screenshot = self.capture_window.get_screenshot() + if self.check_for_button_and_execute(screenshot, self.reset_confirm): + cv.waitKey(500) + + self.reset_counter = 0 + return + else: + return + + self.find_patterns_and_valid_moves(new_observation) + self.observation = new_observation + return new_observation + + def get_current_board_state(self): + # get an updated image of the game + screenshot = self.capture_window.get_screenshot() + # screenshot = cv.imread("field_farm.jpg") + screenshot = screenshot[180:1030, 540:1870] + # gray = cv.cvtColor(screenshot, cv.COLOR_BGR2GRAY) + # thresh = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1] + if self.check_for_button_and_execute(screenshot, self.ok_button, 540, 180): + cv.waitKey(500) + screenshot = self.capture_window.get_screenshot() + screenshot = screenshot[180:1030, 540:1870] + if self.check_for_button_and_execute(screenshot, self.reset_board, 540, 180): + cv.waitKey(500) + screenshot = self.capture_window.get_screenshot() + screenshot = screenshot[180:1030, 540:1870] + if self.check_for_button_and_execute(screenshot, self.reset_confirm, 540, 180): + cv.waitKey(500) + screenshot = self.capture_window.get_screenshot() + screenshot = screenshot[180:1030, 540:1870] + + # cv.imshow("screenshot", screenshot) + # cv.waitKey(150) + # continue + data_coords = np.zeros((7, 11), dtype=object) + # field = Field() + for needle_key in self.needles.keys(): + # gray_needle = cv.cvtColor(self.needles[needle_key], cv.COLOR_BGR2GRAY) + # thresh_needle = cv.threshold(gray_needle, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1] + rectangles = self.vision_stun.find(screenshot, self.needles[needle_key], 0.74, 56) + if len(rectangles) == 0: + continue + points = self.vision_stun.get_click_points(rectangles) + + for point in points: + x, y = self.point_in_rect(point) + if x is not None and y is not None: + data_coords[x][y] = int(needle_key) + # self.change_value(x, y, int(needle_key)) + # print(field.data_value_grid) + # cv.circle(screenshot, points[0], 7, (0, 255, 0), -1) + # output_image = vision_stun.draw_rectangles(screenshot, rectangles) + # cv.imshow("output_image", output_image) + # cv.waitKey(150) + return data_coords, screenshot + + def find_patterns_and_valid_moves(self, state): + for e in range(0, 8, 1): + for i in range(0, 14, 1): + if self.check_pairs(state, e, i): + return + if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused': + return + if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused': + return + + def check_pairs(self, state, e, i, color): + try: + # + if state[e, i] == color and state[e + 1, i] == color: + click_pt = self.get_click_point(self.data_coordinates[e, i]) + self.dig_point(click_pt[0], click_pt[1], 100) + return True + elif state[e, i] == color and state[e, i + 1] == color: + click_pt = self.get_click_point(self.data_coordinates[e, i]) + self.dig_point(click_pt[0], click_pt[1], 100) + return True + return False + except: + return False \ No newline at end of file diff --git a/fruit/blue.jpg b/fruit/blue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ca0cd03be4e9811a4db65422c371e8142314fac GIT binary patch literal 5501 zcmbW3c|6qLzsElsyYRIqq8g<{ z;B+tm))-&_9Aabp8~+lB1N2v%?Cc;8E>144zmuDXkB6I^mz#@=m!FrH@9=@RcmxFb z4-5QV|Gnhz@xP}I;xIQC_uq{Fn^<1}A#T6}a0aoR1P%$YfrQvtt$-{5uyGu?{cHGN zVmkz4=iofB#LIV(Q2Eb+eGur-fmsfA_Ji!;gMENqh(q|q1$|Bti~C$BQKA<^;y-eO zua-88S@u%oRGqy;d3ePojz}Iobz1(+Sp~IA>Kd9_mkq8N8W~@Q-mtR1ZDV`quAPgk z+XMJRcMtRvAK#~b{sCd(5zixEyo`F2@HP>b^zMCfMrKxaPHx_({Ic?j%Bt#`+PW5E zYg;?%Ye#2a|IdNJq2ZBH^7PE??>}?%3yakCjm@p?9op{RUoJKP^j}#2Ci@>;LI+%j z4r;*8^_Pq7(9?qn5@P2#ae-4<--7EtO626l5N^?{@gGZ@dBCcc6ftM-US4rIHS#Iy zU$p-u``>|u{=dln4ffw$qrhPh+d=U_LVzy7;LeBwej#>mGN17(e#N@OMupeNIYn;d zalvIo;pAxJ?9fvM*Eq9h=k;378@~sao)CQvv5_Nt`I|q#EF0By*1NhadvSP5EMRgnhy;M(wnZI9AQhMJLf5FlcI&P$)zC81Ed{ljE zRenJG3dP>KUoDK6mSSz}^^*kbb6Pd5B z%cG_ucJJ3BU!j9X@`I14?Zm3kY1N1JF<+Kt8xC8$UI1$?Bsi|U2ogC5jyPLjRlr59 z*ovsMQ+~AE=UY`*fLGx{{VIc7Y9^j-F}YsyXLlus1t=fBXGIznf9d7iI9QPa)o+Hb zfny@4Okw>#_KzR@Gg?tP;i9GJvXyN>g{lAk$|B9h(yOBqFszucjM%o$~f8W{RLJKnc4mUk1}j(1lP1 z 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 literal 0 HcmV?d00001 diff --git a/fruit/green.jpg b/fruit/green.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80b969d3267487a0839fcd7c5f4a0e50855f45c3 GIT binary patch literal 5291 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 Y-H+m8JM;z3`=2g0nCJ`LMAIk!1M-!CRsaA1 literal 0 HcmV?d00001 diff --git a/fruit/orange.jpg b/fruit/orange.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0391ec4e00249947c71318f9cb7c954ee5427ef7 GIT binary patch literal 3882 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 literal 0 HcmV?d00001 diff --git a/fruit/red.jpg b/fruit/red.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d41cb13569c2a214647ce3c8cf300d170473d53 GIT binary patch literal 6728 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 yu&Ap7HOTNDwM66q literal 0 HcmV?d00001 diff --git a/fruit/yellow.jpg b/fruit/yellow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e7f188c3e9d7cead2687c0941b5d6f68f385071 GIT binary patch literal 4428 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 z z_MkvdB3ZbX=;`RS0H=w^uaXpG^yAJPqMil|QKCq&M3OF&-QH9G+-Xksy-(<&W zzwnO~9k)g{h**G*QyOkoloR4ZwPro=!3XfqpF0R zlx;f;b#u2Q>sC&fXT(NotCwd7o(>2=m+~XDPb!RYk@HU?+Po8Ku^f#7Yw39G28w;1 zwr4vUTppwCb47>h5C842sAfGpgCcp&PU5S|Dno^p6|K)>8}UBrS?_W`#6lCTXm&XJ zzSa`weaN-4^v#uMRD3BCy63B3G_dnnb>YiuDl$e58dK9$NA%V5Ql3p;UY@r+FYj!P zmy!sxBRG9aZI+>_kl>ZeOwt=do3E5!ieA&wW&e6;SqTP(y2q&etV|vM&AhC$-Qt?- z+Yuk%9eyB{xE@6G)muZHb${3sluoS)jd<)#F1%vwWC?s7>NN_{c`yfc)& z7cEYi5eUJfG$^lIBhw$R2;*ejE7CMBuUmb^Ek*9lh7+(*EmFE@%8GSx!b;xIuA}E7 zG2Q)|lDQ6;ciKaI{=+2`pPc3QYg)P`lRuAaZcI6X!ae=#_4Oj?0N1{g10ArQv7gJQ z195S!L~>ejbAOTIQ_ZT(rk9j~Tk4 uClH>eZpT06ajv$cyHT=Yf8FN}T4DYB$8`D6*v_t{FIGl^r`E*iWB&m&FSnQg literal 0 HcmV?d00001 diff --git a/game_base_class.py b/game_base_class.py index 9071827..4e904cb 100644 --- a/game_base_class.py +++ b/game_base_class.py @@ -47,6 +47,7 @@ class GameBase: self.next_level_x = cv.imread("control_elements/next_level_x.jpg", cv.IMREAD_COLOR) self.reset_board = cv.imread("control_elements/reset_button.jpg", cv.IMREAD_COLOR) self.reset_confirm = cv.imread("control_elements/reset_confirm.jpg", cv.IMREAD_COLOR) + self.ok_button = cv.imread("control_elements/ok_button.jpg", cv.IMREAD_COLOR) self.reset_counter = 0