From 195ac475da5d3c8e15914a1201dc904c5b1eef52 Mon Sep 17 00:00:00 2001 From: a18023913 <mohammed-el-amine.ABDELMOUDJIB@etu.univ-amu.fr> Date: Wed, 30 Nov 2022 03:54:18 +0100 Subject: [PATCH] tache 01 principe solid --- .../7.4/executionHistory/executionHistory.bin | Bin 32769 -> 49394 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.4/fileHashes/fileHashes.bin | Bin 19147 -> 20197 bytes .gradle/7.4/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 18871 -> 19755 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .../java/main/Activation/Activation.class | Bin 0 -> 139 bytes build/classes/java/main/App$1.class | Bin 915 -> 1006 bytes build/classes/java/main/App.class | Bin 2421 -> 2522 bytes .../classes/java/main/Fighters/AntiFire.class | Bin 0 -> 1246 bytes build/classes/java/main/Fighters/Clouds.class | Bin 0 -> 3148 bytes .../java/main/Fighters/FireFighters.class | Bin 0 -> 4069 bytes .../main/Fighters/MotorizedFireFighters.class | Bin 0 -> 4092 bytes build/classes/java/main/Fire/Fire.class | Bin 0 -> 1947 bytes build/classes/java/main/Grid.class | Bin 2705 -> 0 bytes build/classes/java/main/Grid/Grid.class | Bin 0 -> 3173 bytes build/classes/java/main/Model$Position.class | Bin 1444 -> 0 bytes build/classes/java/main/Model.class | Bin 5035 -> 0 bytes build/classes/java/main/Model/Model.class | Bin 0 -> 1618 bytes .../classes/java/main/Position/Position.class | Bin 0 -> 1413 bytes .../compileJava/previous-compilation-data.bin | Bin 517 -> 786 bytes src/main/java/Activation/Activation.java | 6 + src/main/java/App.java | 5 +- src/main/java/Fighters/AntiFire.java | 21 ++-- src/main/java/Fighters/Clouds.java | 24 +++- src/main/java/Fighters/FireFighters.java | 27 +++- .../java/Fighters/MotorizedFireFighters.java | 22 +++- src/main/java/{ => Fire}/Fire.java | 28 ++++- src/main/java/{ => Grid}/Grid.java | 31 +++-- src/main/java/Model.java | 118 ------------------ src/main/java/Model/Model.java | 45 +++++++ 32 files changed, 175 insertions(+), 152 deletions(-) create mode 100644 build/classes/java/main/Activation/Activation.class create mode 100644 build/classes/java/main/Fighters/AntiFire.class create mode 100644 build/classes/java/main/Fighters/Clouds.class create mode 100644 build/classes/java/main/Fighters/FireFighters.class create mode 100644 build/classes/java/main/Fighters/MotorizedFireFighters.class create mode 100644 build/classes/java/main/Fire/Fire.class delete mode 100644 build/classes/java/main/Grid.class create mode 100644 build/classes/java/main/Grid/Grid.class delete mode 100644 build/classes/java/main/Model$Position.class delete mode 100644 build/classes/java/main/Model.class create mode 100644 build/classes/java/main/Model/Model.class create mode 100644 build/classes/java/main/Position/Position.class create mode 100644 src/main/java/Activation/Activation.java rename src/main/java/{ => Fire}/Fire.java (50%) rename src/main/java/{ => Grid}/Grid.java (70%) delete mode 100644 src/main/java/Model.java create mode 100644 src/main/java/Model/Model.java diff --git a/.gradle/7.4/executionHistory/executionHistory.bin b/.gradle/7.4/executionHistory/executionHistory.bin index 482e3bdabfbae03cd5487a119ad5f3965e386c49..8fe78ca1a5dd4e5f7bbf6c847e351629e7542837 100644 GIT binary patch delta 3328 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 Rrr(6wpa7Y~1}?jw003sgOSk|4 delta 57 zcmey=$lTb#G(kj`i2)3Jniv=ac0$;()(i}S+CaAM#>5@s6AKI`OG;=l<)v+QmDrOG E08i-*-T(jq diff --git a/.gradle/7.4/executionHistory/executionHistory.lock b/.gradle/7.4/executionHistory/executionHistory.lock index 9941b2c52553d73e13143e16fb70a977ea5e0ef9..1340577b55c3869daec00a9ac7b66ce4f3969529 100644 GIT binary patch literal 17 UcmZQR@qCKwh0L%v1_<y606dBW@Bjb+ literal 17 UcmZQR@qCKwh0L%v1_;mr06b>|%>V!Z diff --git a/.gradle/7.4/fileHashes/fileHashes.bin b/.gradle/7.4/fileHashes/fileHashes.bin index 4967a97b225f66ba74f8ce3a2c0c13d4676fff19..ef2c76f6244c8300dd39f9b78287fa119b4867a7 100644 GIT binary patch literal 20197 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 delta 221 zcmaDlm+|ye#tkMCjJ%U;B_t*vmGGDxDrqqJED-BT8BFe#l9+r|%7EuT6fiI_dTvzw zA->Vzg4kq7k82XY@A)xyo9{iMlD^V>x9sUPKm{#LIm_H8ul1Fh?CF^jwEp3`(8c-e zG3s6do$*Zqt3e8mT$0(#00zvHfs~#xkkABTMGzKvWWnRTPnzlJ`O|CooWK6t3e|BK qC<z3drIY`Au27NwuyoNR!LQvXg2JRcZ!NwFQ6wu4QN+Xwr1bzB7*3i1 diff --git a/.gradle/7.4/fileHashes/fileHashes.lock b/.gradle/7.4/fileHashes/fileHashes.lock index 12eb8cbe55628dc15efc14f86e6ba1b86813d97b..9dde747e5ba0cbf26f13cc1d0db23f41d1abf531 100644 GIT binary patch literal 17 UcmZQBEe>6w+qHB(0|dMS05K2*;s5{u literal 17 UcmZQBEe>6w+qHB(0|bNu05Eq1NdN!< diff --git a/.gradle/7.4/fileHashes/resourceHashesCache.bin b/.gradle/7.4/fileHashes/resourceHashesCache.bin index ab592c7a31bfa7d10f331af39895804b94763548..6b50c75922b9ada313fad6a4db8b4c636c3e5373 100644 GIT binary patch literal 19755 zcmeI3X;2eq7=U9fRPIY4aur5J84nO*H6|V?M@S5yB2Fuyh){^45<{#g2*!d^JL7=| z6;RQL!B~S7s0Wt;G2svd6;!T)VyGOpM((3zcE53&^+$hq-pnM~dGgHrWuMvn%6@Jn z64`JPe~>;sOg|mM5fp#|Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU@P8?= zdFn*8v6CS${6ckLaDYT|(w#b(8*fDK67vd*v5%P*=>G$OL7uETC-OSZS0kQyFMpl> z*kcyP*S|$PIY9HW-!7fKxZjQVt+HwxBO5CpjI&-MF3#BLFXoXaFz&S<@q$a_3q$NE z6MX(k#2?kgBsy7nNpW6|xYTs;Zum0m6nuUZ;uRZ(gFnQj24kF&g}6*|sV#*QgU@07 zh<HPj$hPwiUx3d~K)k70GXF+dM?S{A91-tLK5&iBEt!R{JB)b$wU)(&8PhJ{bFLx& zanU;V_Mhk0<8ww4ACQ|VsG@Ydo0lHqgUw0$0z20^n9md<K05D6$qTY53*!tK;uCu9 z;@hLc{rLQIh)-si>DF*7Eit~{5^)WEu9o|Zk2$zsfVlZXU9+O2rCTu0%0qmf@#@wS zFH2A0TnBOI@StC<{e*wv^S2>RS^Lu;8!fi?V4UHKIMry0eHcHDj?Y<yIDPIGj{%pZ zD{(&rao@C_n<4g8A;!HnAijb0CByd4$v^QqXA$36Y4_~N8N~vOGX;omd2u|##yxKz zKBo!sK+oD8E;i4(7-wrCzF%Q^SFYgT*ALSgah`JF>lE#gdzjC7hd967u=_o4<{Nz7 zV8mn0i<M7I&uC(t<%2kSCy}P(O)&#rp#T(s0#E=7KmjNK1)u;FfC5ke3P1rU00p1` z6o3Ly017|>C;$bZ02F`%Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfCB%efXkGmx}n`j z^)y@&doZ_BWaS$xFftZ$D5^W2ZT@ZSzTxdnPYH?a`YvxyRep#L(YUC0am3GA#xLyE z?qB71mqs-7OI_mljpvN>WCD50X@%-Oa<x@x{r2C^f5W1<);)RpmBLYVN4A=g>GF0> zqF;x$r*nmFg>r|%XAJ*%&d^}&DvBeI+28Uon`m??`N_-J(Gj`D$I2RonX2s)YOB<Q zukBbNdMr{zTpSN-znwue0(suOdmK^?tBVsig-2e9A{uc=^K%3B64LEh@}M=+>#DsN zYO8oI^|-A$Gkex6mI3*`P%^boL)~~EK%LJVT;BfblydAvT#J%uh_cfp*&*Y7CVI0r zQ`_VgL}R$p$uaa$?m#AQgST;hyerXonXsxZV4pN;y1Rj;ROgLqe~8*QZSM?PFVflc zE_lecjnduloM>ovo<F;Aprf*4aJc2{*yxm?K7;1KGcI?aanD!X3O<xH`i^LDdc*A5 zZ2zVPADWdX)x4c(m}yWcMNeMuG%wGppRAklk!XlBEW(OnXrm1U=Z2$}R8xtDiD7_@ ze=H)}#MeV-&&Zw<qCw}hM@E}TY%?!E*ry+wKbvT9bF!?I<*m-%G&g!?W9~_!(Wr6U zIUu*}>eD#kgR7}yGNPeK6{q*v78vv>!r5<Y{Xf%#`OWMrD~jU1lO`5Z4$tvvCeDx_ z9*G^7P@3Deb{2MaED;e6o84DZ1zpP%xcBqy4oV%$iN@~-!fG{xL%*MhYxNzkmVV}! zJ(O8rzf17kRg!RJ|26@&mpG$uT2S|+1dVhp2hQICS&_dHjVkVhTm1)zc|qNl7Lo-A z$BBlSZqqL-J3Pf{r`&3b?<nesM!ZYo)@OUiG-JtMPm}jds`kIAU8fZ{8RFK>HKF%E N^vtxhZaS?p{sFklH`V|E delta 68 zcmZ2Ii*fs8#tkMCjNFsgN=QuRl{A<fDk(8}D-b^gvU{Z@ChwIpn4Bst!Sf#q7#J8O RH!A)RUuYn{+0mnn5dd*48utJI diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index f9bfce77ea4384b451ec4b6f1a5479072d930f33..b207f9406dc55a038e753c0ea3e3c8365eff33af 100644 GIT binary patch literal 17 UcmZRUKJ)c@^b_gh3=q%+06f?QS^xk5 literal 17 UcmZRUKJ)c@^b_gh3=rT406e4xCIA2c diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index d94dcb441eb81719468d22e20d87091ecbebd734..a85e42110354fa8e5219eee63229148156d012b9 100644 GIT binary patch literal 8 PcmZQzU~D<&)v^}=2wei# literal 8 PcmZQzU~D;ZtT`S4326fI diff --git a/build/classes/java/main/Activation/Activation.class b/build/classes/java/main/Activation/Activation.class new file mode 100644 index 0000000000000000000000000000000000000000..c7f213be0b523ab2f5b45930433cf9db57ab5d28 GIT binary patch literal 139 zcmX^0Z`VEs1_pZuPId++Mg~#G<dV#?#FEVXJbeU{oq>gsK_Dx!EKxrvF)v-;KPf9U zxrC8{D-o`mk%3u5GYlvcoL^d$oa&aDlgh}zk1#?Hq??VA0jLgW9RmX+&_q@SHV}(} K9Y``UZ~y?&;2{(M literal 0 HcmV?d00001 diff --git a/build/classes/java/main/App$1.class b/build/classes/java/main/App$1.class index 136eec5fd5de762f9958c0f9e0c25c95369e559e..532fdf1d6c45efaefb8833aff200682238d03a02 100644 GIT binary patch delta 503 zcmZ`#%T5A85Ud7eV0Xkd@(@&X5fU=&vc5fVk$CXnegGbcB!<K&F@$&{@e3q;1ZSh5 z{*Fgu`~~b;4S4Y|)z#C}UDY!XU*f?&k9Qkag~mmv)opZIH`j!;Uz=v$j8<a^Au17r zL5S+6%iC6yVEU&VJq=X@5(@%xiA7lbW7kX|DUgy#W2JwWKQocVs=%7WIxIqRHvNwf z!I;@Guz^hhTOzMJVpFaD=Mh<h0yza$@@wsO^&i(i?w;zDp`HYxgpg%n9ua^eF9Yyi zV8e=Inb`@)Ienv?5lFcs2=xN<F?i@OMtBTRgv*%vZLYxMOpn>d4%c^?hhQ<=3s4X4 z-Sd^!vJ+T(#j<(^y&*$jBF4xKCm()!jN)+e9w?-c!4|^MnmGtY#oA@oa9G#ls>}ab c;hHz~l4a}rI0*V}u4z|?d;|+qeb5Yh-<&U2z5oCK delta 423 zcmXv|yG{Z@6g|UhmSxmc5d@SK#E1*{RtgdmE1R{kF_uJ(*#w0cLSaMU4@mYSwpJ1S z2LHm+#$Uj*s}^(bxp(e)d`nk87EG<*Y?rR@oR&b$K4EX@&=8l<6%tUx`&z=lti+tc zJd(rb;#nLiq$L&=GRO)<e3C%)rqjA=3rPFa2UJ<YvP53NgyMIw70{cPJ*VI7Ih|Xb zIt7IylxvE*Q0}>?YSU%=xZ7>mFP_MVfd+vxgkd0x7=RF80v3CP=!iYcu3Obt2<r{< zDY&V!#>fP<Ypkh&r(+XaoOq9I?C^h=I0Qws7gS&Kfg9hYn8eik05jGIVuXb;ay}Yk z#hZNDl`+=5$!B1ZMi#4#;hW|mS=VV^hJg*Fxy>?ej&V)m|1dd3u#bbkh`+H8$&|Fd Okd%v{&N1YEgiAjb#5f87 diff --git a/build/classes/java/main/App.class b/build/classes/java/main/App.class index 6d4b4a3cf2baacad8fae05e86dc06dcb8e8aa6ed..c4f9e1a8b09d49574687d0d038c5e9c5062f15b5 100644 GIT binary patch delta 606 zcmZ{gO>0w85Qd+V+}xAi#?r)+8cQ0hsfmHmg&&JVs6~ueB0($EU@L|+)@V&*5^L3J z{D`({UC0&1oeRNkOCdo6f;;gi_zPURaVt(u(UphG@Xnl>=e=is`o3+qzW)072^eK{ z-HIu*>v*L&GqQ0|4Jmgtn(ky-#~~GtMbl&Daxy)ZuN4<^wc>nf<eyA#b-s4i)VP)V z+oI_I&w#?16)Qz|XLQpksj!YM<_qObdR0@k_qnEfZd%;pwr0u09qw+tbQwzBv)`D( z?gth@9(tIiVShFw{)WPHqEsqWj?U$()q)UK6vOtY8MFtqWjs|3{z+2$i0ZMI^<kG6 z1E2jxhq}(9amyms>>oPpR|&ICFza=Gm#??4x35Jgq3wt}<kuhA>tHfqG>OMMIv&vW zlzXtQn~b+PnQfEF#sX$Qw>Z_}Oq0oVAv-uHF@;y6U%dM9v4a5ugxN_%R6?GUVvq?! zTwoV-46(#+R@lR;biH7hckJgq2bdDd>CPWB&3VbFvqqj7l$766;G$UicqQw(gj4X( zDRNmJ9Hzk)fxE=?K36GWigk&3%CdxOLNbI=kysP$;5rLiwG1~zdE|Cch;^BM#AB)W Qq$|TVQF4}f!ZQND0U?Qh%K!iX delta 504 zcmXYt+iFum6o$V^c4lw4n;MgtnrafOQA;79Hx^n!Z7Ci|iGol<TS3xT)23-mqCG{c z)oS%ZD03rtA=oDffdmcu0KS1ffCyfDD=w|Wuuikqzy5!|g@1+IFTX#21}^Zb=?*Go zwT4x{@}C&UwDP`l%IO)%T&h$?GObVkx=L7c)#9u|XD*8$QMltP`9h^$Tq@UW?wR$# zOwY2*3ad729_ut(-vgFXkIYXU-~ZSp&J&M0Hci+*9o<xTSIgx>b*yx|Rx1d?bHz!s zqvK}LcCBqi;$QN{zNkF&)jl6MfJM;sImvzFXl$XqYet<^xJx{D(EmejFcOS(NDgb$ zaFS8|fm1#vV^*7VdM{4Lv}rnt4c+Eimx)}LY;G{7JKX4Sv(02vKz&S!9VI9>g2N#~ zL^(n)DGoD4A7heT=O{Cxs7QiUl5BB|m-O?R<GkYx?>Wn~AY9oaD!sQP6UyY7ZJ-4B zEd}n#x)3|^D|hh=?6v^Ti_R1qEKnjK3rj3g7R5_4ZpmatY*k_(HR}IsS?){Z$?F5b Wc_`CQc_x*RbY;c=JzKmGim^X{abUCn diff --git a/build/classes/java/main/Fighters/AntiFire.class b/build/classes/java/main/Fighters/AntiFire.class new file mode 100644 index 0000000000000000000000000000000000000000..f53ca4a7eaced15fbdb8f61ccb51fde563a9d0a0 GIT binary patch literal 1246 zcma)5ZBr6a6n-wCE3hDH+KX6OT7V_Jzldq3p%hj#Iym-ig$=IZuCpxKKj>S(rDjSi zXZivCsHW%cg5*Rqeb{r)o_k)N^W1ZO{`&p{z&utX2q35-q@xGD0*P&7&&bvdtD1ee zwQZJNf!<kZNq0^lm`ay4^a%`jPEA+VvnxiUwr08!Xb6T8g{~o{BaVK0<z=<znoc9T zV7W3c9aEs^4UdLEf3cH-;W-Th40vTXq$_PJ+g2hN!YK{II!16>Al?DDYPdB*a}29u z?|9IbRQa<y&S6xb&$0Ix?WRTeqM$Cube#7t%68qmh#-NBs_Ai}N)-y}QWTdlp<z<T z6<igFoj|B+nLG9#dl*jn;Qt^gmwv5^q;+I4B@n7QvLX;IF7wPPkyGWa>zGECU<uBH zTu|1VI&OJZB8%V-?rONF<G#WbK8`2GT|=sN!fUc>8E#XtIdPK3*<zcwV*+z?Il@`A zEA;L!O3QrF+}Sdnbz`ee%V5zi8}*XmNcG<`hTNLu3k?<jdOoI#`-HdaC^FJrs?t$$ zwQlblPQ`!uRH}<#_t=nSzGJ78-6J~BQj`ssm}dUR?_b=+jIt~D4A=C!6^O93w5m<n z;CPL6&0OMm?Y1UW@zf@xLpsx}*-fX+q>AQPd;X^t_Ru&dCBWqi@#DBqLd~Xka(KOy z3j~1&)B|{kUh3RV${AYb5TphqGKUbEBWRn42!BE3ljohIR67lBWQf`<HQo2eBgTUI zJRY}l<>{qzC6AEU{EETMXPkNe_Jgk_sU70NN8SgZ@+t)2a(8kj{hT3z1w3I(0*hFp zmyi4@|MSXD%Q99d75)w4SNKL*EHd>Cmjc+JnwmPmHGVe^aJ$n=oX+4*N0Fo)^Gc8S T;jMO<2n9T2a)Iac4WRfN=CBg( literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Fighters/Clouds.class b/build/classes/java/main/Fighters/Clouds.class new file mode 100644 index 0000000000000000000000000000000000000000..04fbc2404b53a199d7c4fc58936240901f909bb0 GIT binary patch literal 3148 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 I{EWu`0DjsZKL7v# literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Fighters/FireFighters.class b/build/classes/java/main/Fighters/FireFighters.class new file mode 100644 index 0000000000000000000000000000000000000000..c944b2b3d708386cd19b154b0380028d8e179044 GIT binary patch literal 4069 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Fighters/MotorizedFireFighters.class b/build/classes/java/main/Fighters/MotorizedFireFighters.class new file mode 100644 index 0000000000000000000000000000000000000000..232fd081ec112261f8f28bb0d674f82c5ea8952e GIT binary patch literal 4092 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 A`v3p{ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Fire/Fire.class b/build/classes/java/main/Fire/Fire.class new file mode 100644 index 0000000000000000000000000000000000000000..76b51a2e4075a447e5f8ddf8c112852473950669 GIT binary patch literal 1947 zcma)6-%}e^6#gy=Y)F>!qkshpg*KG1P(uA}La7v`jRsn!qTnx<WPyd4WRj(|FZSIh zr*HPb2VeTCGZuz2<M`|!;f()Ar&_;rvmsk;XPiv-o;~+F=brPOZ}0DaKl&BGW$Z@L zgph%-iDtAYbnMu->}0_%ZY8g8>^M13p=HJ`y56ipC^5cbAfnKzL3^HCNM5t6+slp@ zg@I5jVlWM~nK*%Vh1LbP;w0sv(7ef|s?eTogfc80Wk{!qE}T>d7oD$p+-M?uqf~W0 zw^U5ljr4dRF6&mkw4Bvrq8BeQu<AKw1(h+-r*N`y!d#_d-w}8erx1$aGzJX}nK*-C zg|-Hcl_*49&#Bm6siM%E2%eYm{plFa;+%oFiBX(a=xQXWLllf{ySk+NAX{q^k&yPr z6}sz51LUR+Opwlco5%eMEf-8o2`#3b^W0mu=LnNAOyi<~mrcBaR~1e)N{}`=D?6W` zD-;y^5&_2MON9bQNk-FB(=-N!zBf#~iML4KR>jRL#IjepCgs7gSV)_g!6i<;Qo5~Y zpAqk66K`v8u2hKP3g!*GW8z&baNfu9w9B?z^!(W;GMVueVgI6J$cWMwq>A@VWU<KH zELx$*uQ*80_?i@Y-NX%<bA*-5m-dRDI6pM8teq@GI}LoqBy%;gL_7_X^(?zvMcdmG zEye@PaPl+Hk=tyVw9J?CM7L+%qO-L3)rM2KX>Szh>B^RJc45V?xbp5h!``+_eaEuW zvlcy5M9RL9smkY^qLBJOT7OZ2QC}GBmDS1zM)?(;+cnlBzQv+C0uAerhYEkThdbqZ zAEW=mzUc6_WzWv-F52aK{{^kT=yGYVlA~0GD18A;i9|8Ni8VptCT9;B9G{S>>Xl!y zUMWYt^7<flg?1A@MwmA5CO$u*XBHt^K!<ezWgWp-JwWS2M1R)kRX*iL15C!XV@+Ec zk5BQL#_+2mLUN_J3bw_X*hj}tdRH>YSwN?b?yVvGXxaN5UvR%x-Iui1>$Ryt))r>u zUF#QgH<$0Dc!X1|uRlvi^bi9Ii<5^KQTQIGX^biS25V`;y08zvCfV(Sr+-cy;<W(q zOasU)uM?W$e|8^p51#%Zd5OQuNNbgchSwjWTc`*_8nH+Q(1TW9l$|7biuYg&eYk{v z5<37FgYYnfZ!oNzwHP-=>TI?cBBC7|+Ui7(zr3d9u1|%-%qBgxy-iwM^z@_oFANx% zHgNVaMxLNW8}Y|_EWGDy)GLFeg^0iBGqlJFq<+A_<Poe@vBP;jXAf}g5bv=&c?oXI zdpIB5PLYeHaQ??&j`jcKAn1c<K|0g=ai&R;L5;nB)(GC<5uC#q;#lClzl-zuj&CBY s;aUgB(zxeKBZ6<SO}3g)=cwk{q(?Z4A^Zem<Y*`!59r9{Rugvq0m5RUGynhq literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Grid.class b/build/classes/java/main/Grid.class deleted file mode 100644 index 2979e0e7f08c7d0bff33daa48fabe02028e1045b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2705 zcmb_dZBr9h6n-`dEW`yO_zw7jFNA1`1#DH6wuaX>s0E7E*0xKskd<XO-Q7g(%Qt8E zAAafQc1oPunf`!IKlEGwOUG&ZoVzgwd>N<XWU_bfx#yhwJkL4z?(hFR{tdu;_&$jk z;yMxrTF|QD&>gdCuHMTA1<SRv1=FpXK{lrb4Xu}K*A6E%w4^5|hnCyXhISoE1G`{o zNX+<lk!yGDVp!6k&B=PFfi78WEm`(jDHPLg1Knb3D|k-MtGLRz$G~1?^u4>vn55@^ z0|#(WLr-9Z(_WzxEcs^D@&j|lvAAFQ*3fb{S@as{L%-}{x<y$zp3V!F@u7U3ja9YW zFgqpBS>@x8Oa3DUj^dbx-OPW@o%bq%b=|juz#@&q=~n~~E$cW=s`Fmaa*`OpNs;fA zhW4jBD{;~WhLEA(hWKgF^D2OQ58#Y}w=k@sQzW%b#}3TU_FU0+Zf<B<;GH$_Hbyk; zS+l|!-z=BxLXh*^(7G3nOllZRH~4L<)(%(hHimOL-ZAhl&QqKhRd`1Xi4+{m^cSo` zNZ72l)LSrJG%$`!wE0%qv|X;o)3P#v34`s#m84k+?W!UpJAYu{ifo$<Lf>1r^0sTW zV-iz3rVY$sR>Og9fK=9O&T~AUTHKhOTbg25KCMMWw8=-Y`_RBg$P<+GiS1D7{zmnh zBd!bLae+IAs|KzKuC`SM2v0%vv4I7F)H1U$HFZ@iO9nm>OMGF9lIyIEREN!%V@Wl1 z37@N#jTOsZin_8p?-fjE+4OCh*Nus=WCv`}s4bOxL1_9^Z(s*d+bvhZtZGHou0%`i zHl#JxT*Hy=T09q^!BFmvPLA`OkpK^thK|M1EUeF)<vOsIdJ%OsPEWJ&(VOj)U2@T@ z_yvoSa?&nGYFKKeA$7&`LKf64&s$;1D+XPySWm*ih7Q+&hccOoYt}K{wXE${S^8|= z+*m1^j4)T(Bc6X>!>*0y*&mS@+k&DEqEj23$a~&;r97@Ah};%K-*(rUE%n`^z@__T z>;ElATfRCrI)K~o=1j*~v_oq=1vc>hMtPgAAl9_21)&_Lih-|iJB8b<+MMfJe$Fv@ z{{%WH&dKK#e32MBzU6K8YFBAJr5uiN(-`l}7XEo_^9i}2)yP{}jl77}$h(W94xR@r z^Lc}_U-&MuxlHe7-{vD|ncgkvnZ7M_Wcs&|%Ir;Sp(m55VP7Wm7>9rw4rhMFz|G7f zoY=x(=4TAHrrK&a{Ug)F@F|}eB>6N5t%JW#ejd88A1U->H!qfMoIwxHV-GKqy|_uw zu?PZg;WN$%Mp4n!n~)KLIr+#SuHJ-Df&@Ot?K+JB?aC{=6Iv>n8X>k!4cX34V%0bK z=-8}bl%@;MAn#KU4lwaSLOnzZy%^?aNZ{>@Qa9jb@ddu*#xbdN9l)%bleFkj!{zPS zI~DN5)cy#m9dF8NG_o4?tdI-2p7pOft@Ze&UM5aG#IRx_6TKuBC*sp=sNwwwn)buL ze?~z)^&oNSkeD84v$J_3xhP0INF<4?DhgcS6l*z%EXQ+5^NTQqBF8&8tw<cDZw#X_ zDV)ad(I{5b8?as{R$z`45>F7*{>I1?Xfn`Nq`XlJJ|Ib{>x5AI3Aq~P<gFQEpI~g_ z8?g{0|J0y{`Ddk!#2zN@EH2}011EQAh&|E3Iiaw}h{bvtqU&!4(I^p(5z)EVMzs1e uM2l|*(Rm`eKtvZ`6Hy#%tWyjn*c_$ecUZZv5ul2@v?OV{hi~v54*mxTQC0*1 diff --git a/build/classes/java/main/Grid/Grid.class b/build/classes/java/main/Grid/Grid.class new file mode 100644 index 0000000000000000000000000000000000000000..96b9598c143a90c2e0e1f015cefdc77b1df0e521 GIT binary patch literal 3173 zcmb_dTUQfT6#h;^2*e=-1W^Gms1TwO#cK`4O9;0HwSZXdbw~y>GR&ki6V%=>wzT~j zed%+%N?f&T^{G!?edt^NOP8zdcV^NMP+Y7oVC7u)?0wGn?fuQ3-~N8`3xLb`CV~Kh zVbm!Ip<ZDBJ#|H0c#w2*nyDpos=1;%$+R~K)DP*V?hXrt;v*ydbB$;~V;B(yyPya( zj@f!XDF=awnsfCP)zvLipd)*=x=XGvQ!+lPpcyfqcwf)E1pzT3t*r`nOKW{W(-#Y_ zG_@<(BTWrC%Sc-#(=+Z>u+KBv)_u<yp=YOpE_4g*b~Ja?%9Wg1TV2s?N1Zn`fx7tJ z{<&6iKd9gk4$C`KGcTXS<Jl^MRDZUT2yI0(-DF0N<DR3Pl9wD&a1_S`T6oC~bIK|? z+D%(?9F61;#9t8HKNm)yz^*APuNg^ijG!0&GXDvI=mrp8iccswi2<f)S%wHSWou#y zrWdCaoW>x7WqEYf(49)=!|@6J_0LJfXBC{od4aY?%^kDVVnNS2Y0GrA2kzjAKwrE{ zc|+|tx$?e?cqxoa3Q`ynIPyHbY>J^Ya)zeb(^}3I2va*!JrdKfLJ3}>&DM&lZt`g` z-aoes*N_flMCytU+t(#iqaKN4RKb`85pi7GTGFz*sWoB(lVQA~Ad4x1y&K?pcO=u6 zVcAUQ?eU4(3>E)hv3%M!J|5Q_3U1<6LX>LK4d%bQTHe}-n-YIY(z=Kl1+x-Y!vX^& zYl&)3!EFgCG&Y^dT$h$R3hqiva5^(0_ire8Q|{}oWp8Dq;cW%)cm{^tp*>9j2sBHc z*GtRunmy}lx;1O%RAWxHb-Aw?>)e9wP-r!x_7d&5s?9|AY+|9C#ga=sQpldzNrj1B zuI>d6ZcNlO0RoEWUVRUOd{xPg?<Pe%<Epu(DYaNZ7pl}dM1{(m!rp##lv?pux=pGL z-g-)!Bi=G?SS8tBW~`E((^wBWd3|R<7Fr;7&9YpoK`l;cZo$es&GmQ?!9%<k#`_9B zz=vcmU6Y1tE+%zzg}O;*)#drT$_RCVeao^RGHuJXyWjm}Z3yx&@Oy%DG;3K)rDDoU zk?%I++Pb+|YpLAk2hKh$YX9${f8~o~{dai--n42MGrFs#V)&Rnxmy032FIE=hw!O< zGe1*s4~sD@vZ@oNso7~mWp{JJ_)_55GZ}ndGQ#+Zz3|1ZY`=cyaF~|{*p}=0;}?M= z<Trq$kd5D)+3UTT?T|C%XNO}WJwh1dsB-r!*CEc6iO$uo)yEJCv4(J>a}7<2t~InI zy4TQ_Xs=sCN20Eb{fWdA901DbN&Jl7JBi1Lui<#&M;xz@HH1QCB){ir0nBq8;Eg~V zk;c%3cC->%2miaU7d`wE^<h67aVK7;WdhyE(fh2A26<@Q5tqkKcq_?Ia-Q@U2ECQ! zSVt}kSgbHAk)iZDy%}IE5*rMWLo!junP`-ln^rlrtd?<srkB@&@9{t!V!93!W)Du_ z2u|?>CIRm853d3|jRJID9gqU3K$!IQfV?C86RrwuJU<EvzL!Azn3zP(xzXym(aO0( zw*1Pue^#h11&2C$blbNW@VLlLQ$bn`pHZ!$jLah;zWe77Kd7S;Bwbo$Ooy==t=-78 zn3776OiIwJ<^hDcK8XnHn&f<r<7K8L&-otpB$IQ9z5$%U600I`fh)sXffm1_%k*N! zo+2Rr!r)T~InmdIRU!F^BxQPrCAA+gUdDB~s)g7kG1l<)Sx6&)%t0B`>&5hweU7-# zQ)w5fIC(=g*~3+w!yfhku@tvLbZci2T_U0s5e;n{(YsqAdTnPAT_&O{M09oAi0rKp zy}mPu(nK^uM44?Pa<)SB*3KXrBcgF4n%E|yAY5uWfD%?XE7a9}s{12+g3s}YmIy6h JU=?3u-@nzQy3qgt literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Model$Position.class b/build/classes/java/main/Model$Position.class deleted file mode 100644 index 51c52b923ab5b501b3803cc99bb5101b0b07402d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 zcma)5TTc@~6#k~P-L@{Yl#6mvycBI0rQ%(SpkfS73KAha=+m~H(1m5E?oKiOCm$q{ znDF2a@JAWX>~7P=R>H&P%$)tc^PS6_-+xYj0a(TB3}P745Z94Fk|DQm9+_p^boR<0 zctf~NhUBv4SaOA7s94%fBZahvjE+mt8AdilliP(Y;aSoW4q;sJg@IKSZbU~`frc8w z&Xd}xjy%Q~Qc`S7*K+n43dP#l2$fQ;mqCE4DDH%gNn9pw%k)}nB+4+>&#fxxl#Xf4 zP~QA=$Fx0$`95Go<9&UfH)N&sks(p6R!h4K@gRP-W;uMbb6Dr@j#;-!F<%o6)7~{* zOWi|fT(&F{$^Bahxi+|LiRPB+nulC+mr&!y0rmNvtujm$2j|6vlJ2!7Oqn6GEjn(4 zzq3?w8NZQ>3Px?(<epp?p44!c3iE$aN4g`;y%9os(ly&bie5H}`xz|Zfrf`V9^o;= zTu;#LIMO=g<v=*3Fr@3<C=AEZ+%4xw9Pn}gTsNJj&AmcRh=WeM5~(8`Z^RQ4cfPjy zTkbVnt1X2arL5Ve=S3Z1j8FYRqUvW}RoK21o-%0kTr2cEvvj0ym_e^P4tISWP6JDI zpSFgV^pbi#Ij2Sqs|?r9hte>DhEUT}w1S{7uXc(~d9^lVlc3RImi}C&+lE?HvRUIN zm@#t#&6qvG@G-e!xE8_z8*_BN9ze<7pc|3=(9A!n;4$2!b2>(D^^<m!RBw@<Qd%Ob zpqg=t9Ppiv{R(;j2^B_ZI|~Eo<G{BI(WfyV(w9k0^&@30oZ`y=_>%!9lqWQ9;|@h& zR8cpPvVR8>#t&%crI853Flxmh^6*8-2^9TGOE7%9fO}*|D9>Q3!Auu@A43^&%J~VN W;W=KAFHg7>7Er+yma&3YnEDHNw<1*l diff --git a/build/classes/java/main/Model.class b/build/classes/java/main/Model.class deleted file mode 100644 index 5d858bfcb70dbf28f83d9ed1c56ce1f4d1db1948..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5035 zcmbVQYj_k_8GdJXvy*Iw5bmU*TmvMVKq_)+NlOcXl+aDM1d~E<4B1ICWU~`?XQ5c@ zrMA{<tyIxsZ7W{lwNNF2K*iR(ZM~sZMeRjv_3?+leRyKy`<<EWPDtzzpC>zW&Ue1^ zUEl9JXY%};=Pm%a5&wuGgs_f?fg(gTlpin;ne{0%-Ce(Z{{gGh)eybjPTTGV4dLpV zb{)kUW+<kdYp3crW-{iHgq?L`&=D>{DGVJ`43uH2hN2cHX{9t6U3SLmvb%d+E0d*; zL}9;dZO}1I!?Xf%tC{U-vnaCM6FJksEX<}nkwXDf0|Lm`AZq6tsK8YkB3ak!*Pt~E zah`#zF`vZljGd$>iJSQ*`$8<zvDm;8wL^#+iaVWDqmxU!vT>2{EHkiN7>YB_;rz<7 z7?<M)YEh@5EMumVPTvkEYrD3S)-b)gCZU|J8lyFoVkPQzTw~yESfyb~!A+XZpqfc4 zpH=O-6bO7n&E8V1maS{3sIW^Srehsx;}ykl9oFk;FmOF?7~7%bwU}-Xo%d{2Y1|yc zTHGipzll+;Zf>q=7q2%NXq3E_b#=8`hsQj~iWyrBG~s5(!e$Ol*U4y@O<xOUHT!h> z+l*~GZZVKR3nMa-MT6dBW?QYh#r<k=vl-hB?7&WDDy_&f$7BZsB9U)1up93n1kFy@ zK4iL9Qvq5U7FS;x{R!zPq30b2Zk5D_nOK?cHE^4n69O?N{tg3os>t-4cA79;h<yf3 zq3DXz)FesWBK9N=Sm+|egZ4~rNFfjk^b*w`12zsYHw3}P6f32|$APM?MkkeG1rk`q zf>@C<&?i=ucvjGJv7<-q=$H6)$tYtWD-oJ%wy_d+JBQ6oQi3G<at03JF!g2KjAiy| zs2q#4Qs`0Z+tgx13`g)z9rqY`7w#QbpI&ERA(myVgE`7>b<(Xlv47cQIGzaY>Fho4 zG4Nizj~REZEP+rT^jwNM2(GSNTE(G$N5)FpolHAn_I}*2;{gL7z=Im*6rwxM3;Nn+ zr-)4r*9A39A~C3NoD8MwLk2#Kk5HWJNcy}|FDO+hmGFPez(e@Bh8S^dr@M1@mbEuy zA}-q{b)PVBRGLCGWA!<QEFGWJFf%AL-D@R9bPSJ3m;Us)G)S9lG5cdUhHxp4qesVQ znfJo}ojEJVydM{+9>e1Xp1_kteSePTUpq;rCML>{Nw5k<-U$O=kmA<u?3TWM_lVHG zWZ=uHg8K<uaqcSyzADbKv8G)XQdW%kx`A&9n!??dE4%86<~F-KZMwOP#kvV}6!H7| zE9-efgN8)`CL(20o|0;>*VnWYVU0Y7<kYa!R%@<rzm?f-?oW|2J>hhksdh7C%iJeM z+#Z|I);-NsS0=}wZKmw3={5NxJDs%dW{TxF@&qz3GHLS8xG~z4HrMRzWr}>!F~3Qu zqoOojXt8o8j_>Bw8|q?TiHKNQLuM&rM$;eB#M$G`Khi(uLUDioKw3Q!d4cHt&k&bL z8y1CB6QSn>OsOA+76O%Kn8^cXr<LY{-kHl}ypij)+dK*xjert`Li!WQS{9GU5_*(% zJt;E+Y(ARFxFkSTn<vfingEx-cLLv)K^64G+MHablc^E}#8lK*O3Bc}R(7HmO8`Q* z%QrcW%RXTCw^(kElgv(y;&(Cp9)Hkr$-p1+C&E?LnyL;veaPvx>Jw(){-ntrW*3v~ zWR6g5UvTzfu<ra#o`S8sOQfu9Rl;$4bNvmTdrCGNGFwTIGH&B;X8!+M^i;m}-e3#x z)i#=`R2we>4dqxhwFCp@cy-bqx0mN)b2@Eh8dGLAD_ANXyHx0SUBl7|;hQWHI^NJQ z|E*csLcOqI5qofm$BWJ%?|ytju6gRs+njpyataMkaU8-)K6$y!&rfmAOHh6;>%3U< zSwdP7p62sgoIQZB(z7Oh23q_)^gU-#GKd(5<s42Q#Ef`&5Od<SgQ$$xp2mVfRLOhk zAgZ6HfDpdT=VBD|S&j(Jo(hAC%CG>_P=)EJ!wjC;GjW<6vpr=P#1Ln|8s!}Cxj2KH ze3Q<QC&IOL;SE<;o}lW}v|$J}!&nhQ$Ngb#VDz6{n&&OWyrsA2m&B;BGHSkx-dsK_ z7@N7Mq*;skyoT?!n5PU{%~*uEewMT_jTswJecs4*80M-bCgB`MA)M!!&W<3YUB=uI zX!0VRw`t#rCTf)(^Uh=Kp0l`?PE<eG`;a%P;^+)ENRGVlMHTM?Ws%|S^R;Vu2C~Xr zY0uC?3CwGSJZ+@h*f2J0NYoBvtA<B$BL}S-p2gahc-;_owUVW>?lju@+cSjQWx9e> z{y4ph(~T>JA@Lg+y%3kFr2jPL6!jlR+DAl!gc-xwuc4*R*E5d;Pfu%Ye8mtthtaKs zyha0PP@Zu?fss-Ix_bvkUlzIKPjhE{50yst5p0seh)Ur$;s-=gDVCxd%Xl0w#|<1M zP=gM{v6ms=&!G2W1+R-M@i6M~7!&*izfy*=3NH|OFA-(0GIfH#4GiW=?)?rfFqqZk z{w_x$?lTxMp$!wi%so%o(AA%@&f$M-2i66CF&<Vc{f1o{YO>1e);&Huq-9jn!N z(FmeyP<0vdeaag)pHg+}`IhRA#%qV*T#1AAfl`U)Q5eM!Xx3Q0|B(Cn1>qqBZ_w~4 z<#mX>gDUUNFnEATcnQC|JI>+Vpl|nu`1qiPR)NMxnRg~?eWW7d=X9=&yrix#idPho zXJGX8Ix*18$5l$rO?+-*6dM`K&CJCX8q$<6rvz6emPKMv-uw>V{3v!ZXA<)o?*0+u z8^%~vJ<3T^B&yR8dJ}7P`SapApPP6o^?mLjo5ZlvhtR_UA>xa@shvN8dZ9m+kr~)V z9NoeKP6Ps6nYXagw=g81AQUYnr_&eNdDO3i7Looq>q*L5#*w7xVljIqB$ME>%p=L* zayxCTjwDY6W$c?EgG^Q9nUth`c}Wv;vYj1x2diTzGqH>H&_+z}R(>w@JjnZb)c3QP zUjjd7{6qQpdz6!;Nc>Bs!7XR-=T}wvr;MPEUu9kfw0{v4()KT%$0H2Er&|0oqxC$F zasHY0kvfI%VLZy*unRm!uoYDljWrM%`CyAyL@J^c(II?}UFcP^eqQ6P`aTZ6s9G7( zNF>XKfe?FK8QBTWud&IUQZOaj1<4fQ3*RgwU%0-aLiaaD2S#71li4?Eks`~PLTP$I zqG!a}fzf+v3&8gp(XI4%4?F)}o)fpRCEd;vxPxK8lhnJA#6D#BfqgGq(vxf+Pmywl zRsSsEbP?V7EqZwGvQ<)cQBotj!cSNVQF5=sPdU=L;~<{rNQ&oDK4q8kDZ9v)_9C-T zPOhKvI1SU1=kRm<g1L|~l4KWC+Y9(*p6gVe>sREG)UJj;%8tqIRI2LhxQ>-Nj<Hz* zm$7&RbtI3-|G=6@u!Q4(W0@Sv7r8ftU*k7?M~H&8^vP?8FHy&z@iJavs|1^Nh-;<z N3$6Pr{)WG!;=d)s&>8>$ diff --git a/build/classes/java/main/Model/Model.class b/build/classes/java/main/Model/Model.class new file mode 100644 index 0000000000000000000000000000000000000000..cb1d5740f8d1f3bb9c5085b7958d3a4bd15e9f7e GIT binary patch literal 1618 zcmZ`(U2{`K7=AV<$!SkcO8E$d^h1%hB&iZWC_>r_wg!qRpn-N^xY;I$_CT8BoSYQ& z+8OWs0bY9Jt<DgOFyjyKm*`(`81>oR=0m{AWcPjdefN34o;|<+{o*$OA7jHo43>?! ziv*GaqmSgSEH-3wt9WbkkyncZk_&#*kCp_iTz=igkicQ>)Q<c{@oE^#uPS~ka$v(6 zMhdQtw2KiO5J;^Bb+1v>tAP8^550%})^_BDEk>&JQ4~PQ#zBFD{ln|BwO#cHJZgZC zxX9qBKtkaV;J^R?{YonMF&D>G<jhVG1)=}7S04<jJjPv2D34^V5wz<qbu{JT9lR?L z-wORYv#wm@UQ`P)-@{28(=KK(D=^%%2n^MN#&XbZvO{83!JJgic^3ucITQv@v{hO1 z4wnyHoJLV#B$Um1uyZ?T`H>$qnQJaz>1xHUP)gw}&e{0T#d%y1Nca1~S~&|@XR4W; z>A}FfO8NUKTvS&-Vyylx)nXf$+2L-8UMvR-ShTU^k`Gt9mo(&>jJDY-ld&eiii1n| zM3H5glgO>E=GWPls=w8gQ9JYmW(KCBVlKR;wxyE5^nf2L`aidk+`u$ctoSlHrH1b} zy_@ZwO)tD7Hyb=TR0(Rbu`WYj>HCNAXxk@M(v<-wGWdvMv@aWeOPU$jti;rk@SAn- zseq%1V*;>eN+}!acF$6pKwT}{BV74S*K{?Kwa07n%l)jJYS0dA1XOuDI<?bkQaC}L z#P}|4{z*x$P{h+aX{C3*EC{Snj^R_Td=ovrOr8Ai>B>&F59k)<1g>$tPTTjebi8t5 z52ElA_Psp}ci>PQrFf`=!~N5-zL+h{bud|&dxjGooKkzPgSnrH7{e;pSqyVMf;e18 zPb16k!3?D{%=QBFUBno3KZYChI%+b&XQ)sE%DQqsDy-qA$y2P*CrR6`HJ`{N#(%(A z;Tco=1@HfgGcjy@lMp}t^QSgW7^7p1^ZzwY8e{gY#!TE;$6mAkq3W`9UGuC37-w}8 ztY93I{LNyDPjnKOnfEeh_Br<rPEzt~5O8l}TG#o2w=8zz7H=fz*OeA~(tRQtD=Y2w zV;8r1L#XPBJ*&I5i!Ufy`m9PRjysg6F!TzR_zTBhA@;_WB?do0rlah#tuZHF;?lk6 mD6yY&-#-4%NT(?6;p$JsH1kYq-<+<)HTU-O6S%9r*8c^U%}^Tv literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Position/Position.class b/build/classes/java/main/Position/Position.class new file mode 100644 index 0000000000000000000000000000000000000000..33bf07ad87f3b9a313773bf30224819c611ade2b GIT binary patch literal 1413 zcma)5+iuf95Ivilli)OMdVyYOxwO=Ap{Cp+g-R45BBfB#st@qwB&)`);|;b`#6R&s zB`Tyo@Bw@jV%BzuQBBncYiGyj%sD%|^XvENPXHTuUPKCM1sN4t<QPT|%p=pVO=sVD z&s)N6GvwAS$MRn=q_yf^0eKV@6jfY;$}qMqJj=I)V+;a<x#BYet4rvJin7F|Tf(l8 z;FyXE#u@Uy*zsM<*=JbR8Uya%BDHE`=pzKyBz;oF6fP6JV|txU(dG<OiS)WePpg>0 zEFFM<>YKL5pe12rO7EHnyye%b9~iP)y<Xj8$b>58hUM_L{ce-HyJpiS-AY5WOnc9C zExC`98NXwZ&UnI!sI^<%?}+xc>6%^cbC-Y<TEantM%Ni8wPb5dNcCZVBG(MX9np7N z{Iw<hl?F{+l}KvB;5tWN3gLUcYxY7vUO9(5MXbV5a970|?lCM3tGj*2x4PU2RU!&Q zp*g6+a2z*kIY;7<8zJzG>9lR`EjENW?DuLh)6u2IG7)k2OOL<eUdy$5zHsA|P22Rm zcp|Ft@obT}`af?e>Qx>O7!-P^HF}q23h65`sCCETZlJ?G1y324hK)GqU<zss^XEh9 z2Er~-hx0UZpsyl_h@y%d5?XVhhle@(bCq^max!Tx>p#Hs*%K)G+zCp@luBVff`cFn z6kiLWv|gtjk%H1Jh-C2;ZctoEQCj|_NhH;qq$icuXq8Y!KgB5Ujl#1EY6yuG#%K^1 z6X+Ab*9*~SuoThPNlf-5udkfq%K!LNAtsV1G;U#;Dlj_Hz=#p-fvo-=%6T@jQ5i<9 vNFtXmLe4-7PFjUd>j?P^Z!^5hl_1A(8yWI?9}n>ek11Cqk5BLn>zMunNuC~! literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 99ccfdfd3ea2fd7ca14837d733baf60e85e1d94c..602a1e264d73293219aa1caa066dd595b27a20ae 100644 GIT binary patch delta 373 zcmX|-%TB^j5QeA5n24N%iq}HbD&P&Kf*0_HR`gWRCOm-&v5g)>C@GbN8=`3m=+3ur z=|lM*mIhtT%>RFr%>3Ty=NJKiAE9csxWlc+cj!y#gvK$%CX_IEjN2xGR|>A*M8JEh zwQD{vOtL8q6FQAiaMflr;%g((nM8CJ-m-Hz&lcFCE-EqTGyd@Cn0AZAp>H{s&0kD| zO3)k1gGFJ9EwdF}#u$lHX%*KxdO}G;SGNqaPEz0vY5=b58<-@iP25tql{9>)_YQB@ z24|BDy#EgYi>iWYlG(v*Nz6gFZao{Vz}PLxxjo$14wO82n#~PT0M{>pd8i#>{*Dxm z@r0eKViDYi!)aihv2#@}QWY;)iHTGS#7lO?WGXS#s@F;x`hPK!3iO7F2HZ{c7R#g} H`0v6mpQ}|g delta 102 zcmbQl*2==gz`*c`(KkOOHD@F5O2!~&PCYJ$HZY%?p*1V9ED@-HiHj$ISA~m@p^=}V vBfmJaBr`uxKu?gN#j&7(8ze6%q#`KH&}1m0C(6+3UX+;v5@i%+1d<E@+07Lg diff --git a/src/main/java/Activation/Activation.java b/src/main/java/Activation/Activation.java new file mode 100644 index 0000000..35c9102 --- /dev/null +++ b/src/main/java/Activation/Activation.java @@ -0,0 +1,6 @@ +package Activation; + +public interface Activation { + public void activation(); + +} diff --git a/src/main/java/App.java b/src/main/java/App.java index 10dda1d..f2ec687 100644 --- a/src/main/java/App.java +++ b/src/main/java/App.java @@ -1,3 +1,5 @@ +import Activation.Activation; +import Grid.Grid; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; @@ -21,6 +23,7 @@ public class App extends Application { Button restart = new Button("Restart"); VBox buttons = new VBox(); HBox total = new HBox(); + Activation activation = null; Grid grid = new Grid(1000,1000,20,20); root.getChildren().add(total); @@ -37,7 +40,7 @@ public class App extends Application { while(true){ try { sleep(50); - grid.model.activation(); + activation.activation(); grid.repaint(); } catch (InterruptedException e) { e.printStackTrace(); diff --git a/src/main/java/Fighters/AntiFire.java b/src/main/java/Fighters/AntiFire.java index b4a6d1c..148d821 100644 --- a/src/main/java/Fighters/AntiFire.java +++ b/src/main/java/Fighters/AntiFire.java @@ -1,30 +1,25 @@ package Fighters; -import javax.swing.text.Position; +import Model.Model; +import Position.Position; import java.util.*; - -public abstract class AntiFire { +import Grid.Grid; +public abstract class AntiFire { Grid grid; int colCount, rowCount; - List<Position> firefighters = new ArrayList<>(); Set<Position> fires = new HashSet<>(); - public Model.Position randomPosition() { - return new Model.Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); - } public abstract Position moveTowardFire(Position position); public abstract List<Position> next(Position position); public abstract Position activateFight(Position position); - - - - public void extinguish(Position position) { + public void extinguish(Position position) { fires.remove(position); - grid.paint(position.row, position.col); + + grid.paint(position.row(), position.col()); } - } + } diff --git a/src/main/java/Fighters/Clouds.java b/src/main/java/Fighters/Clouds.java index 1ceaa9d..aebf985 100644 --- a/src/main/java/Fighters/Clouds.java +++ b/src/main/java/Fighters/Clouds.java @@ -4,10 +4,17 @@ package Fighters; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; + +import Activation.Activation; import Position.Position; -public abstract class Clouds extends AntiFire { +public abstract class Clouds extends AntiFire implements Activation { + List<Position> clouds = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + List<Position> cloudsNewPositions; @Override public Position activateFight(Position position) { Position randomPosition = next(position).get((int) (Math.random()*next(position).size())); @@ -25,11 +32,24 @@ public abstract class Clouds extends AntiFire { @Override public List<Position> next(Position position) { List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-1, position.col()); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); return list; } + @Override + public void activation() { + cloudsNewPositions = new ArrayList<>(); + + for(Position cc : clouds){ + Position newPosition = activateFight(cc); + + grid.paint(cc.row(),cc.col()); + grid.paintCloud(newPosition.row(), newPosition.col()); + cloudsNewPositions.add(newPosition); + } + clouds= cloudsNewPositions; + } } diff --git a/src/main/java/Fighters/FireFighters.java b/src/main/java/Fighters/FireFighters.java index 5ac5176..32eaa51 100644 --- a/src/main/java/Fighters/FireFighters.java +++ b/src/main/java/Fighters/FireFighters.java @@ -1,20 +1,26 @@ package Fighters; +import Activation.Activation; import Fighters.AntiFire; import Position.Position; + +import javax.swing.*; import java.util.*; -public class FireFighters extends AntiFire { +public class FireFighters extends AntiFire implements Activation { int colCount, rowCount; + List<Position> firefighters = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + + List<Position> ffNewPositions; - Position position; @Override public Position activateFight(Position position) { Position randomPosition = moveTowardFire(position); - //next(position).get((int) (Math.random()*next(position).size())); + List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); extinguish(randomPosition); for (Position fire : nextFires) @@ -29,7 +35,7 @@ public class FireFighters extends AntiFire { if(position.row()>0) list.add(new Position(position.row()-1, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); - if(position.row()<rowCount-1) list.add(new Position(position.row+1, position.col())); + if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); return list; } @@ -55,4 +61,17 @@ public class FireFighters extends AntiFire { } return position; } + + @Override + public void activation() { + ffNewPositions = new ArrayList<>(); + for(Position ff : firefighters){ + Position newPosition = activateFight(ff); + + grid.paint(ff.row(),ff.col()); + grid.paintFF(newPosition.row(), newPosition.col()); + ffNewPositions.add(newPosition); + } + firefighters = ffNewPositions; + } } diff --git a/src/main/java/Fighters/MotorizedFireFighters.java b/src/main/java/Fighters/MotorizedFireFighters.java index fe9b6a5..a385f72 100644 --- a/src/main/java/Fighters/MotorizedFireFighters.java +++ b/src/main/java/Fighters/MotorizedFireFighters.java @@ -1,10 +1,15 @@ package Fighters; +import Activation.Activation; import Position.Position; import java.util.*; -public class MotorizedFireFighters extends AntiFire { +public class MotorizedFireFighters extends AntiFire implements Activation { + List<Position> motorizedfirefighters = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + + List<Position> mffNewPositions; @Override public Position activateFight(Position position) { Position randomPosition = moveTowardFire(position); @@ -43,10 +48,23 @@ public class MotorizedFireFighters extends AntiFire { @Override public List<Position> next(Position position) { List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-2, position.col()); + if(position.row()>0) list.add(new Position(position.row()-2, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-2)); if(position.row()<rowCount-1) list.add(new Position(position.row()+2, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+2)); return list; } + + @Override + public void activation() { + mffNewPositions= new ArrayList<>(); + for(Position mff : motorizedfirefighters){ + Position newPosition = activateFight(mff); + + grid.paint(mff.row(),mff.col()); + grid.paintMFF(newPosition.row(), newPosition.col()); + mffNewPositions.add(newPosition); + } + motorizedfirefighters=mffNewPositions; + } } diff --git a/src/main/java/Fire.java b/src/main/java/Fire/Fire.java similarity index 50% rename from src/main/java/Fire.java rename to src/main/java/Fire/Fire.java index 19aa564..1e3dfd4 100644 --- a/src/main/java/Fire.java +++ b/src/main/java/Fire/Fire.java @@ -1,18 +1,38 @@ +package Fire; +import Activation.Activation; +import Grid.Grid; import Position.Position; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; -public class Fire { - int colCount,rowCount; - +public class Fire implements Activation { + int colCount,rowCount,step; + Grid grid; + Set<Position> fires = new HashSet<>(); private List<Position> activateFire(Position position) { return next(position); } + public void activation(){ + + if(step%2==0){ + List<Position> newFires = new ArrayList<>(); + for(Position fire : fires){ + newFires.addAll(activateFire(fire)); + } + for(Position newFire : newFires) + grid.paintFire(newFire.row(), newFire.col()); + + fires.addAll(newFires);} + step++; + + } private List<Position> next(Position position){ List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-1, position.col()); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); diff --git a/src/main/java/Grid.java b/src/main/java/Grid/Grid.java similarity index 70% rename from src/main/java/Grid.java rename to src/main/java/Grid/Grid.java index 4ce3285..1dc1629 100644 --- a/src/main/java/Grid.java +++ b/src/main/java/Grid/Grid.java @@ -1,11 +1,19 @@ +package Grid; + +import Activation.Activation; +import Model.Model; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; -public class Grid extends Canvas{ - int width, height, colCount, rowCount; - Model model; +public class Grid extends Canvas { + int width; + int height; + public int colCount; + public int rowCount; + public Model model; + Activation activation=null; public Grid(int width, int height, int colCount, int rowCount) { @@ -27,14 +35,13 @@ public class Grid extends Canvas{ repaint(); } private void mousePressed(MouseEvent mouseEvent) { - model.activation(); + activation.activation(); repaint(); /*double x = mouseEvent.getX(); double y = mouseEvent.getY(); - model.click((int)x*rowCount/height,(int)y*colCount/width);*/ - } + model.click((int)x*rowCount/height,(int)y*colCount/width);*/} - void repaint(){ + public void repaint(){ for(int col=0; col<colCount; col++) getGraphicsContext2D().strokeLine(0, col*width/colCount,height, col*width/colCount); for(int row=0; row<rowCount;row++) @@ -42,7 +49,7 @@ public class Grid extends Canvas{ } - void paint(int row, int col){ + public void paint(int row, int col){ getGraphicsContext2D().setFill(Color.WHITE); getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); } @@ -56,5 +63,13 @@ public class Grid extends Canvas{ getGraphicsContext2D().setFill(Color.RED); getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); } + public void paintMFF(int row, int col) { + getGraphicsContext2D().setFill(Color.BLUE); + getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); + } + public void paintCloud(int row , int col){ + getGraphicsContext2D().setFill(Color.GREY); + getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); + } } \ No newline at end of file diff --git a/src/main/java/Model.java b/src/main/java/Model.java deleted file mode 100644 index 7e6653f..0000000 --- a/src/main/java/Model.java +++ /dev/null @@ -1,118 +0,0 @@ -import javax.swing.text.Position; -import java.util.*; - - -public class Model { - - Position position; - Grid grid; - int colCount, rowCount; - List<Position> firefighters = new ArrayList<>(); - Set<Position> fires = new HashSet<>(); - List<Position> motorizedfirefighters = new ArrayList<>(); - List<Position> clouds = new ArrayList<>(); - List<Position> ffNewPositions; - int step = 0; - - public Model(Grid grid) { - this.grid = grid; - colCount = grid.colCount; - rowCount = grid.rowCount; - } - - - public void initialisation(int fireNumber, int fireFighterNumber,int cloudNumber, int motorizedFireFighterNumber){ - for(int index=0; index<fireNumber;index++) - fires.add(randomPosition()); - for(int index=0; index<fireFighterNumber;index++) - firefighters.add(randomPosition()); - - for(int index=0; index<cloudNumber;index++) - clouds.add(randomPosition()); - for(int index=0; index<motorizedFireFighterNumber;index++) - motorizedfirefighters.add(randomPosition()); - - } - - - public Position randomPosition() { - return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); - } - - - public void activation(){ - ffNewPositions = new ArrayList<>(); - for(Position ff : firefighters){ - Position newPosition = activateFirefighter(ff); - - grid.paint(ff.row,ff.col); - grid.paintFF(newPosition.row, newPosition.col); - ffNewPositions.add(newPosition); - } - firefighters = ffNewPositions; - if(step%2==0){ - List<Position> newFires = new ArrayList<>(); - for(Position fire : fires){ - newFires.addAll(activateFire(fire)); - } - for(Position newFire : newFires) - grid.paintFire(newFire.row, newFire.col); - - fires.addAll(newFires);} - step++; - - } - - public List<Position> activateFire(Position position) { - return next(position); - } - - - - public Position activateFirefighter(Position position) { - Position randomPosition = aStepTowardFire(position); - //next(position).get((int) (Math.random()*next(position).size())); - List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); - extinguish(randomPosition); - for (Position fire : nextFires) - extinguish(fire); - return randomPosition; - } - - public void extinguish(Position position) { - fires.remove(position); - grid.paint(position.row, position.col); - } - - public List<Position> next(Position position){ - List<Position> list = new ArrayList<>(); - if(position.row>0) list.add(new Position(position.row-1, position.col)); - if(position.col>0) list.add(new Position(position.row, position.col-1)); - if(position.row<rowCount-1) list.add(new Position(position.row+1, position.col)); - if(position.col<colCount-1) list.add(new Position(position.row, position.col+1)); - return list; - } - - public Position aStepTowardFire(Position position){ - Queue<Position> toVisit = new LinkedList<>(); - Set<Position> seen = new HashSet<>(); - HashMap<Position,Position> firstMove = new HashMap<>(); - toVisit.addAll(next(position)); - for(Position initialMove : toVisit) - firstMove.put(initialMove,initialMove); - while(!toVisit.isEmpty()){ - Position current = toVisit.poll(); - if(fires.contains(current)) - return firstMove.get(current); - for(Position adjacent : next(current)){ - if(seen.contains(adjacent)) continue; - toVisit.add(adjacent); - seen.add(adjacent); - firstMove.put(adjacent, firstMove.get(current)); - } - } - return position; - } - public record Position(int row, int col){} - -} diff --git a/src/main/java/Model/Model.java b/src/main/java/Model/Model.java new file mode 100644 index 0000000..70769c0 --- /dev/null +++ b/src/main/java/Model/Model.java @@ -0,0 +1,45 @@ +package Model; +import Activation.Activation; +import Grid.Grid; +import Fighters.*; +import java.util.*; +import Fire.Fire; +import Position.Position; + +public class Model { + Grid grid; + int colCount, rowCount; + List<Position> firefighters = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + List<Position> motorizedfirefighters = new ArrayList<>(); + List<Position> clouds = new ArrayList<>(); + + + + + public Model(Grid grid) { + this.grid = grid; + colCount = grid.colCount; + rowCount = grid.rowCount; + } + + public void initialisation(int fireNumber, int fireFighterNumber,int cloudNumber, int motorizedFireFighterNumber){ + for(int index=0; index<fireNumber;index++) + fires.add(randomPosition()); + for(int index=0; index<fireFighterNumber;index++) + firefighters.add(randomPosition()); + for(int index=0; index<cloudNumber;index++) + clouds.add(randomPosition()); + for(int index=0; index<motorizedFireFighterNumber;index++) + motorizedfirefighters.add(randomPosition()); + + } + + + public Position randomPosition() { + return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); + } + + + +} -- GitLab