From 554e6a803c77e60a28970d24ce44f73048044a20 Mon Sep 17 00:00:00 2001 From: LATIOUI <alatioui24@gmail.com> Date: Thu, 23 Nov 2023 23:52:03 +0100 Subject: [PATCH] Implementation of Road.class and refactoring MotorizedFireFighter.class --- .../8.4/executionHistory/executionHistory.bin | Bin 66789 -> 66977 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.4/fileHashes/fileHashes.bin | Bin 28397 -> 25347 bytes .gradle/8.4/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.4/fileHashes/resourceHashesCache.bin | Bin 25841 -> 24991 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .../java/main/app/SimulatorApplication.class | Bin 3250 -> 3296 bytes .../java/main/controller/Controller.class | Bin 5786 -> 5819 bytes .../java/main/model/Builder/GameManage.class | Bin 1380 -> 1487 bytes .../main/model/ExtinguishFire/Cloud.class | Bin 3584 -> 3584 bytes .../model/ExtinguishFire/FireFighter.class | Bin 5899 -> 3979 bytes .../ExtinguishFire/MotorizedFireFighter.class | Bin 5156 -> 4550 bytes build/classes/java/main/model/GameBoard.class | Bin 6191 -> 6254 bytes .../java/main/model/Obstacle/Mountain.class | Bin 2281 -> 1621 bytes .../compileJava/previous-compilation-data.bin | Bin 22218 -> 22290 bytes src/main/java/app/SimulatorApplication.java | 5 +- src/main/java/controller/Controller.java | 9 +- .../model/Builder/ConcreteGameBuilder.java | 6 +- .../Builder/FireFirefightersBuilder.java | 3 +- src/main/java/model/Builder/GameBuilder.java | 1 + src/main/java/model/Builder/GameManage.java | 6 +- .../model/ExtinguishFire/FireFighter.java | 74 +++----------- .../model/ExtinguishFire/FireFighters.java | 80 +++++++++++++++ .../ExtinguishFire/MotorizedFireFighter.java | 93 ++++++------------ src/main/java/model/GameBoard.java | 8 +- src/main/java/model/Obstacle/Mountain.java | 21 +--- src/main/java/model/Obstacle/Obstacles.java | 29 +++++- src/main/java/model/Obstacle/Road.java | 36 ++++++- 29 files changed, 214 insertions(+), 157 deletions(-) create mode 100644 src/main/java/model/ExtinguishFire/FireFighters.java diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin index ef3814db707d3311a601ee242faa1484aadf300d..8f1b2dd7e12c428126c841e15e393e8aa0750036 100644 GIT binary patch delta 2222 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 V%#}9}C%T*fS!FnB9i(V|0|1}CD*pfg delta 2106 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 diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock index 90be8bbe46872fb2c2dfaa16c2b1debc3585b0e8..2f5ab811be3d96d24e78d9dc4139628ed8bc8a71 100644 GIT binary patch literal 17 UcmZP$`TwJ1B6D^Y0|dMW064J)F8}}l literal 17 VcmZP$`TwJ1B6D^Y0~jzi0{}Qj1jGOU diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin index 3777e2fb75188a80f5ef02b487efb22b1d596b5c..f961414987ea05a2ba4cff7e6f0e15177557d141 100644 GIT binary patch delta 1828 zcmaERm$CU6;|3E6!Oq6D-E15;1P?KQLDI#^u@aV(*GcT3+$w1>`K+Ym<bRUxlVhb0 zPBxP^m|Q2VKl!V)#AH<&kI83c5+=vWN>1*R6`y=n)?>1%oX6y;at4#{${9>nm6w<t zD(^A*to($@r3w<0mnuk3zNSz<IaSeP@=?W!lk=3sC(l(fm@KMnI5|$aeDYgmgUO~U zo|C7k7)<`AB0gDF)nM~nRRzY$Z`CR$*Qy&%KBnG3xm81A@>2~-e*04H>=@%qVD~a4 z&7b^LLt(P3=E})zTH=#^wVIfCUT#$UA->VTfP1r}$1Yxlb^IO4kMqAYopGPO^)QFm zdj<x^?tji31R(}+T$!Bjp*GnuOip3Tv^OV0Rc{3LCpqkWRCh%Qs!#%=kpKB)!(_F| zOT*+QmnMs_{N4A9ZE|n29)z(!SxR9^oneRN3=ZeWj|!E4OK+=#wcE{k0nyGfX>xan z+T`4Dxu6}pIM09Dd%RV}C0>Q2H2y3^;anDoLMAo_1_nK21_lOA1_lO25EgJhTe;@p zG5uXfgbo;(bX|B1*5Q`01EPcV!Q}oFHM_t2esMqqm^v_xShTB5vG!1>t7z(GmiIo# zEkH*6-S>+VqJ!ht<j*N;Air=<mQ9rklD)$EOYTg{!YQ0HI0I!W)j+EM@xSPUsOFr8 zY5vc+e@UTs3ELw#wnZp0|6dH&A@E)YqJ#U(<jz!e=6%1oCvQ&G<N3Sq7Y{^&aq8ra zVZ!x)opMgEEIP~Y5_>+;JMsWnv)!EE5H(WoFs++Xl&i9<wBx!$$5e%oo%f5OI=(@4 zFh9c7@$c4^NfJLCmFF&arF8J=$>UHRA3-|I7#LV>F}1{WmCbHDy{Bo<9OXCHR5Pui zTK<EyFfcGLo4hp*<R`w#_tW&5_x<9VESRo0xi@Od<j?8g1j0X=I|H0R1SZ>NNGYi5 zN=2Gk==2<&F{i_F0*?#WIOk2l5aW0rOn&aG#`4d3Q`lrdKPiPCo1F9Ed${H_MGB}U z#@<~CRlOFXT5R`ZZ$CAbzX#;vC$nbifwcXZY@VrS_s@CLCWsOyE=(WIKKWfk|L^U` zdzd~M<cCeX1UA$yNgtwvHDdC|7?+?Kh5d7xuG&@Y`SWGbR<8*kpo$D3iWq${jeT_c z)sv#w*Qs+3?wsJd<*PANhdD$C>-ou+S!!ngoHs+$4{HIY5kZ%{X1z@{oGX=ck6*0R zOBif~^JbsPQ?vBy|2c2=gP6rI2UBbM%iQR#UjMd>i1j=TJb&FBs?{2zgTEV7hkE0@ zHlZ#F({0^nmAp28=Z5OYh3F7GhNfe(Q?@wEKj+PYlVh_%LA_aca(}i|{fRJxeaUMU z-?`7B-0(Me!%T=Nn|?t|k;p?cg+Wo^pY)?ASt4?0=F6XDn{|`@8AQkCGKdbgP)r?+ ztAZpg<M;G_Ph@{{ZU_4<sE!H-1_o9J1_pME$%)az@{0^yV*0BkOU;hQ_s)~af-0(k z8tXbaJ_nSrHcy(|nFDtJ^vSy+j5(9vf*G6sPnOTsWBKQnWIH)9SC8fI0ogs14+cq1 zo|`KI^7-1yTS3y!n>I|A&y`X*Tl1K|!F0zj=Z(yjHxDO5QnFi;2gJf~p~(}2)h16( z+)|(MiMKED=Y-R~^TO6jy>-3=cA4Frw-AL)prnsh)XDA<xcY5PnAESTifd(Z2iAgh zxFuOZbTETTQ#2jj*OT2|+Sn(b*KoXXOYPHgunztglNlHoKuLfLR7#?0IrDk5+Lzph Z>Wve6I^_;MX8~(*-fR!Cgx3cY4*+FqN1Ffu delta 4026 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 diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock index 7b333d1b1b3ec72096d6acd1269ec9a0c55f1011..753dbf9dbddde9e52f56efab94835c5ce535b059 100644 GIT binary patch literal 17 VcmZSXX1VC#`|)8R0~m1F001)N1b6@d literal 17 VcmZSXX1VC#`|)8R0~qk~001(+1Wf<{ diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin index aa0feb0429a70db3fd0c1501c8b605824d233c01..838b0069cd156cd1359aad27da737a8fd0628a0a 100644 GIT binary patch delta 2369 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 C0Wqim delta 3663 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 D1mPP~ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index c77e84520038f8c47d14db5cb911ea630ec7b10d..0bfc94ece4020f6aa0d98d4a9986882cfc8fda8b 100644 GIT binary patch literal 17 VcmZR!o;x%Ck-On^1~6da2LLZg1J(cl literal 17 VcmZR!o;x%Ck-On^1~6c@1pqI31O)&9 diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 349a7660edc0174109e0bb6d9f10eadb1c99c724..26a07b303a3272556a607b454cab45b805954402 100644 GIT binary patch literal 8 PcmZQzVC?><u+b0z2(SW; literal 8 PcmZQzVC?=oM`#-W31<TC diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class index 1003f5961c795950b88df71148fdc944e51f63e9..7e6f31bb2e3cb5962c4cc1ee6bc336501ac01730 100644 GIT binary patch delta 790 zcmdla`9PBE)W2Q(7#J8F7*=lN%4cTg)$rV0&D_Jt$T69NwNXOI)6X-+)6pkB$luW= z-q}CYFNB$afq`psJ8LFm^X8ANX^ec+xfo_J%w%Vn#ltY0Vb11Mb{0m)d6Tm^WR(|i zF>o*}<YDM%m>|F~fsuj7GcPZ-$T=smxHz?#ona{>gX&}f4q3ip6`%b4?9u{uhUJV5 zav-6}pE!gW`6jb*Zp@HmsAR}uU}Q*VU|?WksA6DZ;AY?fvt1e77#JAX85kK@8Q2&Y z8LAl=81xw!85kKD7+AHoGcaxhE308(082A4@G{ggFfi~y6fo2=)Pv>K7}P<UC-ZYz zyMok8F|aW(Fvu~mGRQOVF(@!dF(@)9F(@%;GAM)fi!m@UFfeFA^@CU-2Z5|@U{GgZ zVyK?n&m|uWGD(Pmg@J)Voq?4>gMpJllYy5(3&{jNxCwk<FEKJSGB7Z(FfcMSF)%S` zF|dKmVqjpH&%g~f$9^&+w_&{i2b%yts{p?M*ER+pga_pq*cliYbQw4p^cVyf^ch4M z3>Xv`3>h>Sj2P?~Ou*J^L5zV~%fVpI(8AElzz9~~#?a2d#Gt_-&d|Zo$-s=_6kTxe zfkHQiVe&d|je3ON%o%tXEEq%>EE%L3tiYCtfkQ_IY6%a607Dl;Hv=OBCqoZIJSdzQ z7#NJ<k+g#$2H^)TuvS|J76v=8QLu>WW$0sI5a0qOBd`In3=Db<4B%K~*};&2FaVSY z7#I|gG_x>FWSGRjz`)Ef864MB7^Xr~z%&MChPe#$85S`t1|?_)MusH}%NSNLNCE(D C(`ruu delta 733 zcmaDLxk-}i)W2Q(7#J8F7?yA3%4cTc(b!zW+{4JoI+>HTaq<$@bjHTbJZx!<d{em? zrZG%sXPCjmFq2`{<_2~aM#njf4B{F-S&3zdX%+gZWvO{3`mP|-S~HBFjbR=a0|&!= z9)@0qJ^_Y4Mg|_wyu8#R=bXgi;?!bxhQ*8ws*^vmi%&k!&d0{iu#}NO4$5Vp%*QFj z$U9k)bK~SkoKkj`3=9nV42%qn3=9mcTH6^IH!?6VFfmjyFfg!z1$h~&85kINz-(5A z8irc1yc&Z#10zG_WGgOfSCCpM1~vu;23ZDH1~~>k26+Z41_cHs21N!<1|_h5F$N|E z1_mvteh`ZrY$hW^9fLXp6GP?XU0m|PAd`d`SQr=>)EHP9)EPJ#G#GdpG?7f;gPXv| z05PGSfq{XAfsvtsfr&wjfemC90|Ubx1}?BUHj{O@4eL4B1o&A6__s0mAbcmsz|O$H zpu@nypvxe@pvNG}pwFPdV8EckV8~$2U<|fX3t|S;P7VeWh9-t)21W(}1|5bLhE@h9 z1`P%ghBk(F24)6icj$t{4ivO849pBnlkan@+9LdB#=yg1&LF~I!640G3AP6kIx<ju zco+m2Iv6?`7#TPjx)|cY;q1sGRu3|P3mlF%3@i+`V4bjd>1OC*U=ZK}r3a9D1_lN_ z1_p4PvFu<-K=>LGr}9X8Ss3~mCNMBCFf&X9$Lu7A$<X+o!obWhn_(`)0)~YQ3=CXc P42%qm7?v<BV~_*@o&jk9 diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class index 23933b95f3862a8016fa14fae947490553944e61..a8d8a50db6b3654e296244fac71b6fb8b811475b 100644 GIT binary patch delta 434 zcmbQGyIYs*)W2Q(7#J8F7&$j`>98^t9oTHas>H<1t>L*jhTV~oiBV_sd=7nPW?l`? z$rren@(5(+WtL<n<^<&@rcBP`+0FNzi{S^uPj-f1JPf}X{%khqWnpCeH`#_yMum}q zi-CiYk%!?u!v_I|4~z^vo_TqxMb0^i#l@+`?2N38462hE`NSvh<71!P%gfHj&dAQl zAO{lKypNBajq?%%Hv=~V1B1!rb0P{%qFj^Ti73{WGVn2!F=#N9Gw3r^Fc>pbGMr*y zU?_knWH`-mh5-aj7@jihV_*bnW_ZT1kAVryvS!%Fzzk;DGwfqv0kfVn>|<aBvtBUl zV_*ZbUNY=sU<b2aG3;aD0JB~*>|@|$VBldeVR*x^kAaJUk>Ty+38Gq@H4H2awG12# zb(0T^I;%G_a5FT4og@afln3r49)@=yCkZft!eg?on2q5_hEEKP49pCl85kIt7``xk hWdNDa$ncGUnc*+Pe?}%okYl+R7#Ud@*%&z(Bmqk!UYq~` delta 420 zcmdn3J4=`A)W2Q(7#J8F7&$g_>98_+GHkYBRbpb|(%2l!?#Rf*V6=GwhdwhCkH+Ln z+)F2S@oeGy#>McR;RidzPacL}48J$~@Uk#6{+%4iC!@&lpNoNmk%5Qd9m9J8hWCsN zJf3-ZsYT8?iN(dK#q5kMll%CzSlAdD<R(w#lUsa?k4^I!0~Z4q0|SGR))s~oSy2{g znVk#^SQ)f-GZ;mRvdD_Ein58ai*kr^PG%KVtS@2UV<=@%V<=<LWhiGbWT;>`#lXOj z1~Gx*G{YGN5HMnR%CL`t5o9XEGlqQ(OkkEZ!#)OPFw34{9|H@R^_*cJ11p&If?*#6 z8<_QyVIKoKnDvTb9|H%N^_pQH11AF`6T_Ry8%4D^s~K1rY8W^eY9~Jtbyja+;AUt9 zJ46g@6%X7YJPdC^4iR7i1;}JSF&o1V3?CU78JHP9F)%PNF??qD!oa}5!@$V!m4TVz X55qr3Mn;fhxfmE3nHgCb*%>4O!#!CV diff --git a/build/classes/java/main/model/Builder/GameManage.class b/build/classes/java/main/model/Builder/GameManage.class index fd32c7f35a06865312c88379a1bd57794de41293..a0261b9904b2581661e7948aadf106998b3671b1 100644 GIT binary patch delta 398 zcmaFDb)K8+)W2Q(7#J8F7=ku(t!CupaB&Rsc8+xPo4kv0k1jidGb4j=ZhlH?j=q0V zaY<rwPO5%TeqstIgA#))4}%+n8Y2UXdyr!!7lYH}5~eGx9t?~Oo|Ao<t*yNn7#P$T zI2jliL>X8Z#27dk#2NS)Bp8GlBpD<bq!{EGq#0BhWEeCVWEs2}7#KVl*cliYv>1FC zd?z1fcIWkEU|?)!U}j)qU|?80S)8T4p4moPYYT(eA_kG&3{H`o7+kh9xQDkeGA{rB zY9j*!12Y52N<Ri+1_lNN1}+9g22lnD25AOm22}<X1_K6V1~UdV1_uUp25$y6hCl{Q zhG+&YhBO9Eh8zYRhB5|ShDHV*hIR&hhKURY409Ot85S`Z!JWp$;3vu8$H2qD$RNuA zV_Cpi!Eja{oYe_uF)%C!`HO*p!JmPFL5G3o4+GO=M^?$nKCFW50SpWbObmel76w0J delta 295 zcmX@l{e+9_)W2Q(7#J8F7<@Kzt!89paSw8goV<^5&*YU%msp(`7#W-=H!xdUyD%^? zs4;LdFffQPurP=+a59K7@G*!p2s219NHRz=$TLVWs4_@1Xfnt!xH2#>crdUtFfeE_ zxG}g-{>JRi>&(Ew=*_^)z{J47&@tJIrM-S50|Nsy1ISz_1_1^J26+Z91_cID26+Z) z1|<en24w~V1|<eF22}<J1~mq6233YY1`UR222F-E1`UQB25p8i1|5b*25p9R20gHy zb_{F`Obn6?9t=DTj101HmIa&@3}@v@!I=yU9Ux~iFfe#BFfgbxa7~`gs?5c}$l%4m Jz`(@d4FK90CH?>a diff --git a/build/classes/java/main/model/ExtinguishFire/Cloud.class b/build/classes/java/main/model/ExtinguishFire/Cloud.class index 61044ec9271ec1cec418aa6f50ce31b14ed7bf66..9a2ca81b62515b6aaff3d2f4ad91acf8b4fd3921 100644 GIT binary patch delta 14 VcmZpWX^`1)iigo<^JyMaMgS(^1jGOU delta 14 VcmZpWX^`1)iigp2^JyMaMgS)N1jzsZ diff --git a/build/classes/java/main/model/ExtinguishFire/FireFighter.class b/build/classes/java/main/model/ExtinguishFire/FireFighter.class index c0e51cda8547a4be38648418a2a9a1e46ff831f1..cec32da5f69030726d4773a781d4f3ce3c5d5131 100644 GIT binary patch delta 1672 zcmeCy>z0=~^>5cc1_lNPhDBTqObpEI3@khhtPE_742lyy6&Q;*YKbxOGBNORF>o-* z@i53UC`^9K=n<#Hpv=yo!o#4-pvK4`oRwIXs9#!=nWOJmRFqihlUZEC$iSSKlETO! zs^J5c%}LBl*Y{7#N=+`Y){Np}&|uJHXVBtd&}PtKWZ=)uPf5+ucTdbsb;?gHN|{{C zY9yn_pwG@=z{6n3V8qD42Q~z31<3Ttk6AUXI2cTL7)%+=7#VoeGK*3J@{2P|GV}9_ z85x8$G$FRaHCS^oSTI<!Gg$F3STop67H3nP+{L8HCB(qMV8_E?&)_iGjm?JJiNTqj z!G(vxmBDRtFI%Ft6N3j2gD1!awvv31y<7}R4Bk8pJ`BE-IoZ`YG#LDO7y=jqC$C_! z*AM1l2w@0iWMEHD%=67JO9eT@2kZct%fKGzU<l`7h+v4E%*a~A#m%6{5Y597!w@^! zj9HC4o*{vqA(4k6i6MD%I<q=QJVPoELmET+<Y~+bf|-mAyeP&^zQ?|7@^5Cd$xR$; ztU`II<*t+WGpbDf%OyQ|Gl!72P-;a<W?p(}W^o400gMcyNZ|sHE9=P<xJ)PUNKF3A zA<5`JS&GMhvK6;BqvGUwJc>Mw44lE4>3NAIrA4We#d!8jR_BV)&r8ir&q&HIEkc;g zQIKB@4u3`l-r$nN<ZR!>f{?_doK!}J8IujUj3?{x*iF99tvR`t*Mx5Z7sEt`N$d=h zc^IZJOx?VnmxWPZjh~ZY1}H#g@-WN-B`c2P{JfIH%)DX&P_XiN=H;apIp-u67pE4p zGt8UJ%df?<fRRCNvH-u_<Vb#jdIknY1|bG+1|9|m1~vvp23CeF21bT#1_lN{1||k3 z1_lN`t?dkqTH0F~*tNDX@NQ&aU|?d%VPIeoVqjrlU=U$oVGw2DWDsNEWe{h`Wnf?s zgXm(&W5{O!0Y0$lj0}tn1q_8yv-KH3d<F*A$*=gi)Ip|!>}Ft)0-M0Yz{tSBzzQ{i zk)ep87^H8qw17-KLajVlEyOl%s9FXFZiW(uQn2a#VE=%8VhrXpFtBQEXOKa70F-qZ z7?c@U7*xPUp<5fl5Xry<4vNPN%na-d3=Ec9_1Zey7-V&IwlOG%OS0;0V^H78pv%ah zwT;0zatDKX_$~%p28Nvsj!X<Y8Qd8etk`rV*|srwg@bHm1_zrI0~-SagBk-HgE|8b zg9d{HgC>I^gBF7YgErU|9uS-09<pR8V<-m)h$TY>LwzMUbS)XG7^)eVK~7>YWvBti zge5~QLmdMvgCPS4Lp?(c0~<pF0|SE=RIZGn5o$;kLlazQGXo1$eKP|aLkl==TNxM` z+8Ej)US~{TU}NB7U|`4rdC`g$?0-KiHc1w65NLsX7c`SWNK03eO_D{DReKvl*m4FZ zP$;Qeu}iY=WQby9u;P&9*vSyb$S{*Z1H?*UWH`W(Va2H>$+?XoXeNVzmaZfxO!vm+ z|F3{Tiv=87M&N|0&%nlDz`)C3$WSlBV8kHHV9cPyV9H?3V8#%{V9pTDV8M{iV9Aid zV9k)tU<VGy7zR#;AO<mp4u(nwP6lIe@YaBXHU}QGIp7cjrL`P}P6kNG=75766tX$s zFlJ$3V@LysF)ITvLwr3$1w$oL&_WDuh8heCWSG__2AI}n23CeH1_lNR2A01JI_wO3 z><k%y8Ti4Bc<rAIOwfSuW?*LM0Y^bELmvYJ11LTAGcYquW0=k`n_&(E0|OTWCnLjL KhWQK&86*LP!ZE7= literal 5899 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 BFe3l} diff --git a/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class b/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class index 2584644314d21ef8df7dc763702d6084d8844c81..73dcd4f4c73d5965ca13a94c1c33641c645b64c9 100644 GIT binary patch delta 2253 zcmZ3YaZFk2)W2Q(7#J8F7}jwyFflN*GqCV5urjbQGAK?~WEbUe%PdND%S_KGNi8bg zsHMgz1X9Jv#URHZ&(5I0!=T8ZG&!G1te%m9IX$(6kwH|$Q`09au`E$PCowNw-#;lU zHMzu^ok4|>fw#0IGe<ulzc{lbGe3`ufrCMfhe4e|gONcxF(t({Cp9-UuOuWN%7Ce3 zWKh+B7zozxkyxDJn^<7&1LnaLS@URyf!w6U!=TNeGr6Bhja!dFpPj*ghry7+Xz~Fj zbq+lS6CMUr2D8cUndAgOYAtveEE%jA8JH7OQYK3?Nh!%OFmo~3GT5;**z+(rFgP+Y z@aN{Iq~_?mC+4O)<tG-UOky>Xab|E~XK>|VaAR<1WZ(n)6zmkA%;J*CR;-%bo(x{> z4Bk8pJ`BE-^H^0`7#Y+wChule<q~3GVDRT*2w(`DJeSpmJD4GaogtKmA&en>@)OoX zj$npJ9)>7}=*hlp3LMT1u{;cM4Dpjo+0@mY8MHv5mBho4%n;4Uz?+s?lnV2CG04fO zJPc_J>63S}*m`m>Wb!a%F=R6`uqP+x`R13UGBOBhpoNxZ6v(_>9)>)Id`1Sr-2Ads z$GjBRijvH{^wP}Y3`T}TjmgJ3G$to<i)dIQg+9oW);?&VVyzj*$RMjRu~usGGq#D7 z4Vld*m$Iv|a_6O%2Ta!Dkmlt<cJO3BPVvb%7)2&O<WyoQW@HcrS)ysp$RLyow;$#? zMg{?N%O~q`D(Q>nrDmpQB;^-@QYTDtF(ZSRPkwS@PFP}5W@1uKYDi^4Y6yrixqxe- z9B*(*Vsf@`VgXo)k%2QfGd(Y{q_ilNk>P^IWP9$?$%))zlW%hgOn%3uD2&CElV@>6 z$_hfQE-ixD%gDe{kY5Z=(;z=he!!_B&dxB6kwFlVIH0L^vNZQCzBybBa~bBbGtB2< zSirDwGcykhqmdOqC&LnM24{w)JPgY~iIO8ZKd&S)Gp|?x6qP)ld3mWt&N+$2#i_;Y z467I!R3}g55ue<^E5NvB@<d)kaRvrP1|bG+1|9|m1~vvp23Cdw21bU$$+vms>x&o| z7=##DprkMZCxZwBFM}vUF#`jG7y}an0|OsJ2}3CZ2=IZ;U}RuqC}SuGnZUrnpw9r} zGcd4fZDC;Fz`(%3!~il9WDNs@B-j`p21W)323Dvsj0_bFl~B$04E0Q4JGiyAb}|Ss zG3;OvLpMVXYzD+B+)y(Z7`Pd#7^=Zm^Mk!q$iTp04CaHJvYkO@Bit#VGKqmfiGhVd z8Eh1abLtrwLFt@<iJ_2zf$=;83j-$u1H&;bZ5@_v46+9pl(#Xc>TF}sv|^KF+sUBI z$S{*Z62vlQWH`W}Y{jlC$-a%jJbd~8$GaKiBDXVGgA_`#>M+A}+w5d;Vq}nHiQK{9 z5x$GTkAYz)Ll6_gPKF3ZhMf#C^-K)ml5CQ!2<r%F0IT20kif`b#V*MXcM|(f2B?!b zbR{{UP6CAi3phIL82A|&7}Obf88jI*8MGJ-7_=FT8FUzI>KSwyf*JG}(in6Zav1a( zni&ijrZMO<%waHO*v(+XaEQT};V6R%IN)L!I2kk<*coaVY8luWb~CUu)G^dDaDc)K z9xulj>KPiq@qLV;k)a73xyKlq8JZZF!RnG3TEL0z7(**V8v`pty$wSbLpwtY0~<pJ z0|SEz11nfrJwqqlkS@3(U2sFX8CVz~I=dOz7<w2O7{nP^{xAr$GwA(dkpIh2$j;yl zVKelC6G9&YBSSyK1O`Yv?_gj9XNFd-`fUt}R;=*2)7II>kYdFy$p(p5Z4i}W#UaTC z2~#Z)l`)e+NK03eO_D{DReKvl&T<AvkTx4DPDxHk#BfP+K_f;T#DYc)x0WRLHinFu z4E#vC>vNX>zlw+_D+WFW1_nz8HU=vOeg<m>F$Nn3IR;w>H3mBdJqCLQa|Q<nHwGsL zUj}D}90nJLQU+IsMh16=76wmn6csRVGvqLcGE8KsW#DG;1*>lXC+Svr6t#kb9+V|p z879>;)PjSz6&!D%IBEsQ77GI#Lp=j1wpbbX8Op$M$;KeYkk2p~9Q$ev@eEVIu@8$j zh-KYS%RmtbGp&mOW?DA`%(O0Ow51s`u>5CmW8h?G;9zI4WoJ-kXPC;)AP0^=IWSk5 zf#EL$KUhFd>n8&fG)AX0Ff+^m$L&mpSquyeplm&xftg_u!(xWz3@aEI7`PZ18CEi^ JW?0K02>^?b&z%4O literal 5156 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 diff --git a/build/classes/java/main/model/GameBoard.class b/build/classes/java/main/model/GameBoard.class index 6c8872b744c5e2a38f940a8d23806e30f1ac6e64..162baba038c7ed764297e1e083126849fc0c94a4 100644 GIT binary patch delta 3625 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 UelRdFa4|44L^Awj_|3)%0EkEgk^lez delta 3533 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 Z&)~xA3&U3i1_mw$MusqkZwx=!I021$;eG%B diff --git a/build/classes/java/main/model/Obstacle/Mountain.class b/build/classes/java/main/model/Obstacle/Mountain.class index 187c3cf23bc43eab3f4542f932b95e1291f70154..9d89533a3b088c27c70ebae6f63f2c2116accfe5 100644 GIT binary patch delta 553 zcmaDUc$G)|)W2Q(7#J8F7;Ly0m>8JZ8CZB2SQ*$R&tsC^sKdm_%f!G3l91zJkY`Ys z9M2Ltc{kJd$vapSCf{O~WfjUxEq9$<$EYI8$RLzjQIeULUYc2)5s+V;S(2HbH~9dw zl(?8resW??SYlCTVp2|ONM%842#B$X)s0b{fq{`hh=H4dhk=2Cm4T6gl|hk#kwIy4 zJez#IG6MsH5CaR86lUOL5MkhD5M@wdU|<kqU}9ik;A2o_P-6fAKCl^#42%rw3>qL4 z7#JAz89;mn23D;t4D1^i7#NrsKt{4LFfuSONPvyu0kc`5#xOEyGH5|H+cQl5%O(zX z14M%?SOdgfZm0$Z25tsz1|6_H{0ty<N(>AP#$Z0k-t7!B8{zhXLXm+%iGhVd8Eh1~ z-SP|y3``6l18Nvp8CV$@7`U|RwRLnQS++CCf{bAXJ0D_<Is+$z2G|%Ah*G$VxEOR9 z^uXTYV$f$W0EZJ7gCT<v12f1-24e;j1{MZWco>4@%;0k73@i*5U?*ELFfv%Nftl6- DQ~W!r delta 1184 zcmcc0^HNaj)W2Q(7#J8F7-G2?m>8JZ8CZB2SQ*$D83eKt%M$f-67$ma{gbj%lS?)l zu`mY6GRUzr$n!8LFeoxI@aN{Iq~_?mC+4O)<tG-UFf#BJCFZ5%=LX~#XO?8<=P@z} zYH0eDmSpDW!-T9k8Dtrhc^Fg}R2dogQzu_#QmN-+P-oC!XVBzf&|=VLWDo?~4A$k5 zSe)UTSis1@ot&Rnl9-uS?44T4$RMiW16G6NI%~}+kTJSE40;Uuj10`_sU?gIYS`3a zXsx$qXE0=B5C$6ww$`zzD6!Hfv$%wd!GOV-hrtBoEat?N6cC>oWRE!yg9U>nBLj0m zX$d2P1r~cStg+U_6k=zvW@MNsDLr`(<99yZBv2r_=A`DP=9Lsr=3|zcyqQT>O3Wue zIWZ?Ju_!Y!DJM0gvLH1C#9(C5o-D{LGFgE|T$z!9H@GA*Iomg}04&GO5WvX53-$^u z+$TFTMoym0q%ipclc=yzYDGzAUV3R}aRy9&vpusLqa-7P6$2xK5Cb;@4+8@OD+40~ zD}xOKBZKYaIV|$^b_@&*LJTYn3=AR+EDWLyoD5<NybR(D_6!URVhl_S3=Dh>4h)VA zAixJUgOP!e!HK~cWC8;NgFXX@&%nT{wS|Fw0|NsC69dRdHU>rp1_mjxF+5;4E7TZ9 z1{VfbsAhYHdM2<P+}c_@83dRZb})#cn;{Q21L72Js2L0l+zf6E?qI9=89;W~GB7Z# zXJBSvW?*2j*ufy<vxz}TdmDq=Oa@U1OXmQCfz~z#qwwVnQo9)pBDXV``s!$Ht7k9@ z2Px3m#$Xn{k%57M1?+q|26hGp1{DSt22}<=1~mo+1`P%c22BP%1}z421|6`I6d0Hp zG#L09JQzH|ez1T#j)lR5!HdD0fsw(7fq?<!d59`s1||kS1_lOB2Btp@3hWI2VhoH7 z^??jQ3``6l=U-%CW?*ArU@+9x0Xtk6L?by{8tQB-R!LT{Pjq!8Sy7!W1vbEdfrG)2 zL4v`UL6O0PL4(1R!GOUW>|{FzHU>qglUYGlG33MI){r5XAp{&zhG5r&V&0G;ltC37 zq=pP(44w=uU>||}4Kc)*0b)ofLpWSj1Op4$mn;lS65<Sz-~<uHz{n5{X2k#ieYV#5 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 37b3b8ba1f9900d28aabf3f9453e8536c2a212b8..c492006b2d0970468eb0f6acd127bd43204d83e7 100644 GIT binary patch delta 20139 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°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 delta 20244 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%0AU zrFWLg^&BYh1A`z6{m*mhUEm71$fd8%tOF6!yu_t<nalMk7gR~Y6)wH2T)ul?PK&w5 zrFWgn=?0hkR4z%V6KrpC>D}UTy3OT&hs*g8m%5|`)c-1Xx%BRV0+AnLIM019y$4)Q z2e~95eCdZ=dXKo=9&@>E<>K~%h<QEX(tFC~IFl<0!cTn0rT3i6e=e5`gzx-<OYbF@ b(<?5w*IaIgxVV*}W+{Nu8RG^<@Zm}TL==}0 diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index 241535a..0ff42af 100644 --- a/src/main/java/app/SimulatorApplication.java +++ b/src/main/java/app/SimulatorApplication.java @@ -17,11 +17,12 @@ public class SimulatorApplication extends javafx.application.Application { private static final int COLUMN_COUNT = 20; private static final int SQUARE_WIDTH = 30; private static final int SQUARE_HEIGHT = 30; - public static final int INITIAL_FIRE_COUNT = 5; + public static final int INITIAL_FIRE_COUNT = 8; public static final int INITIAL_FIREFIGHTER_COUNT = 3; public static final int INITIAL_CLOUD_COUNT = 15; public static final int INITIAL_MOTORIZEDFIREFIGHTER_COUNT = 2; public static final int INITIAL_MOUNTAIN_COUNT = 15; + public static final int INITIAL_ROAD_COUNT = 10; private Stage primaryStage; private Parent view; @@ -47,7 +48,7 @@ public class SimulatorApplication extends javafx.application.Application { view = loader.load(); Controller controller = loader.getController(); controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT, - INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT,INITIAL_MOTORIZEDFIREFIGHTER_COUNT,INITIAL_MOUNTAIN_COUNT); + INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT,INITIAL_MOTORIZEDFIREFIGHTER_COUNT,INITIAL_MOUNTAIN_COUNT,INITIAL_ROAD_COUNT); } private void showScene() { diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index b5f3cde..a5f13de 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -24,7 +24,7 @@ import static java.util.Objects.requireNonNull; public class Controller { - public static final int PERIOD_IN_MILLISECONDS = 50; + public static final int PERIOD_IN_MILLISECONDS = 300; @FXML public Button restartButton; @FXML @@ -111,10 +111,11 @@ public class Controller { repaintGrid(); } - public void initialize(int squareWidth, int squareHeight, int columnCount, - int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount,int initialMountainCount) { + public void initialize(int squareWidth, int squareHeight, int columnCount, int rowCount, int initialFireCount, + int initialFirefighterCount,int initialCloudCount, + int initialMotorizedFireFighterCount,int initialMountainCount,int initialRoadCount ) { grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight); - board = new GameBoard(rowCount,columnCount,initialFireCount,initialFirefighterCount,initialCloudCount,initialMotorizedFireFighterCount,initialMountainCount); + board = new GameBoard(rowCount,columnCount,initialFireCount,initialFirefighterCount,initialCloudCount,initialMotorizedFireFighterCount,initialMountainCount,initialRoadCount); board.initializeElements(); repaintGrid(); } diff --git a/src/main/java/model/Builder/ConcreteGameBuilder.java b/src/main/java/model/Builder/ConcreteGameBuilder.java index 0c367e3..627f03f 100644 --- a/src/main/java/model/Builder/ConcreteGameBuilder.java +++ b/src/main/java/model/Builder/ConcreteGameBuilder.java @@ -36,9 +36,13 @@ public class ConcreteGameBuilder implements GameBuilder{ this.mountains=mountains; return this; } + public GameBuilder setRoad(int roads) { + this.roads=roads; + return this; + } @Override public GameManage build() { - return new GameManage(fire,firefighter,clouds,motorizedFireFighters,roads,mountains); + return new GameManage(fire,firefighter,clouds,motorizedFireFighters,mountains,roads); } } \ No newline at end of file diff --git a/src/main/java/model/Builder/FireFirefightersBuilder.java b/src/main/java/model/Builder/FireFirefightersBuilder.java index 53d18f8..85b8f5e 100644 --- a/src/main/java/model/Builder/FireFirefightersBuilder.java +++ b/src/main/java/model/Builder/FireFirefightersBuilder.java @@ -1,7 +1,7 @@ package model.Builder; public class FireFirefightersBuilder { - public void Build(int fires, int firefighters , int clouds , int motorizedFireFighters ,int mountains) { + public void Build(int fires, int firefighters , int clouds , int motorizedFireFighters ,int mountains,int roads) { ConcreteGameBuilder concreteGameBuilder; concreteGameBuilder =new ConcreteGameBuilder(); concreteGameBuilder.setFire(fires) @@ -9,6 +9,7 @@ public class FireFirefightersBuilder { .setCloud(clouds) .setMotorizedFireFighter(motorizedFireFighters) .setMountain(mountains) + .setRoad(roads) .build(); } } diff --git a/src/main/java/model/Builder/GameBuilder.java b/src/main/java/model/Builder/GameBuilder.java index 603ed19..64cb6b6 100644 --- a/src/main/java/model/Builder/GameBuilder.java +++ b/src/main/java/model/Builder/GameBuilder.java @@ -7,6 +7,7 @@ public interface GameBuilder { model.Builder.GameBuilder setCloud(int cloud); model.Builder.GameBuilder setMotorizedFireFighter(int motorizedFireFighter); model.Builder.GameBuilder setMountain(int mountain); + model.Builder.GameBuilder setRoad(int mountain); // TODO: 15/11/2023 la suite GameManage build(); diff --git a/src/main/java/model/Builder/GameManage.java b/src/main/java/model/Builder/GameManage.java index c544874..479b574 100644 --- a/src/main/java/model/Builder/GameManage.java +++ b/src/main/java/model/Builder/GameManage.java @@ -6,6 +6,7 @@ import model.ExtinguishFire.FireFighter; import model.ExtinguishFire.MotorizedFireFighter; import model.Flammable.Fire; import model.Obstacle.Mountain; +import model.Obstacle.Road; public class GameManage { private final int fires; @@ -32,7 +33,7 @@ public class GameManage { new Fire(Color.RED); } for(int i=0;i<clouds;i++) { - new Cloud(Color.GRAY); + new Cloud(Color.DARKCYAN); } for(int i=0;i<motorizedFireFighters;i++) { new MotorizedFireFighter(Color.ORANGE); @@ -43,6 +44,9 @@ public class GameManage { for(int i=0;i<firefighters;i++) { new FireFighter(Color.BLUE); } + for(int i=0;i<roads;i++) { + new Road(Color.GRAY); + } } } diff --git a/src/main/java/model/ExtinguishFire/FireFighter.java b/src/main/java/model/ExtinguishFire/FireFighter.java index ba92948..5d0a8b5 100644 --- a/src/main/java/model/ExtinguishFire/FireFighter.java +++ b/src/main/java/model/ExtinguishFire/FireFighter.java @@ -14,7 +14,7 @@ import java.util.*; import static model.GameBoard.elementPosition; -public class FireFighter implements ExtinguishFire { +public class FireFighter extends FireFighters { private final Color color; public FireFighter(Color color) { @@ -31,83 +31,35 @@ public class FireFighter implements ExtinguishFire { return visitor.visit(this); } - @Override public void initialize() { - Position position = GameBoard.randomPosition(); - while(!canInitialise(position)){ - position = GameBoard.randomPosition(); - } - addElementToElementPosition(elementPosition,position); + super.initialize(); } - - private void addElementToElementPosition(HashMap<Position, ArrayList<BoardElement>> elementPosition, Position position) { - if (elementPosition.containsKey(position) ) { - elementPosition.get(position).add(this); - - } else { - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - elementPosition.put(position, boardElements); - } - } - - private boolean canInitialise(Position position) { - if(elementPosition.containsKey(position)){ - for (BoardElement element : GameBoard.elementPosition.get(position)) { - if (element.accept(new FireFinder()) || element.accept(new CrossMountain())) { - return false; - } - } - } - return true; + public void moveAndExtinguish(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newFirefighterPosition, ArrayList<Position> extinguishPosition, List<Position> firePositions, GameBoard gameBoard) { + addElementToElementPosition(newElementPosition, newFirefighterPosition); + extinguishPosition.add(newFirefighterPosition); + List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream() + .filter(firePositions()::contains).toList(); + extinguishPosition.addAll(neighborFirePositions); } @Override public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { - List<Position> firePositions = firePosition(); + List<Position> firePositions = firePositions(); Position newFirefighterPosition = gameBoard.neighborClosestToFire(position); extinguishPosition.add(position); if(canMove(newFirefighterPosition)){ moveAndExtinguish(newElementPosition,newFirefighterPosition,extinguishPosition,firePositions,gameBoard); }else { List<Position> neighbors = gameBoard.neighbors(position); - for (Position positionNeighbour : neighbors) { - if(canMove(positionNeighbour)){ - moveAndExtinguish(newElementPosition,positionNeighbour,extinguishPosition,firePositions,gameBoard); + for (Position neighbourPosition : neighbors) { + if(canMove(neighbourPosition)){ + moveAndExtinguish(newElementPosition,neighbourPosition,extinguishPosition,firePositions,gameBoard); return; } } - moveAndExtinguish(newElementPosition,position,extinguishPosition,firePositions,gameBoard); + // moveAndExtinguish(newElementPosition,position,extinguishPosition,firePositions,gameBoard); } } - private void moveAndExtinguish(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newFirefighterPosition, ArrayList<Position> extinguishPosition, List<Position> firePositions, GameBoard gameBoard) { - addElementToElementPosition(newElementPosition,newFirefighterPosition); - extinguishPosition.add(newFirefighterPosition); - List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream() - .filter(firePositions::contains).toList(); - extinguishPosition.addAll(neighborFirePositions); - } - private boolean canMove(Position newFirefighterPosition) { - if(elementPosition.containsKey(newFirefighterPosition)){ - for (BoardElement boardElement : elementPosition.get(newFirefighterPosition)) { - if (boardElement.accept(new CrossMountain())) { - return false; - } - } - } - return true; - } - private List<Position> firePosition(){ - List<Position> firePositions = new ArrayList<>(); - for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) { - for (BoardElement element : entry.getValue()) { - if (element.accept(new FireFinder())) { - firePositions.add(entry.getKey()); - } - } - } - return firePositions; - } } diff --git a/src/main/java/model/ExtinguishFire/FireFighters.java b/src/main/java/model/ExtinguishFire/FireFighters.java new file mode 100644 index 0000000..519a76c --- /dev/null +++ b/src/main/java/model/ExtinguishFire/FireFighters.java @@ -0,0 +1,80 @@ +package model.ExtinguishFire; + +import javafx.scene.paint.Color; +import model.BoardElement; +import model.GameBoard; +import model.Visitor.CrossMountain; +import model.Visitor.FireFinder; +import model.Visitor.Visitor; +import util.Position; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static model.GameBoard.elementPosition; + +public abstract class FireFighters implements BoardElement { + + public abstract Color getColor(); + + @Override + public abstract Boolean accept(Visitor visitor); + + @Override + public void initialize() { + Position position = GameBoard.randomPosition(); + while (!canInitialise(position)) { + position = GameBoard.randomPosition(); + } + addElementToElementPosition(elementPosition, position); + } + + public void addElementToElementPosition(HashMap<Position, ArrayList<BoardElement>> elementPosition, Position position) { + if (elementPosition.containsKey(position)) { + elementPosition.get(position).add(this); + + } else { + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + elementPosition.put(position, boardElements); + } + } + + public boolean canInitialise(Position position) { + if (elementPosition.containsKey(position)) { + for (BoardElement element : GameBoard.elementPosition.get(position)) { + if (element.accept(new FireFinder()) || element.accept(new CrossMountain())) { + return false; + } + } + } + return true; + } + + public boolean canMove(Position newFirefighterPosition) { + if (elementPosition.containsKey(newFirefighterPosition)) { + for (BoardElement boardElement : elementPosition.get(newFirefighterPosition)) { + if (boardElement.accept(new CrossMountain())) { + return false; + } + } + } + return true; + } + + public List<Position> firePositions() { + List<Position> firePositions = new ArrayList<>(); + for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) { + for (BoardElement element : entry.getValue()) { + if (element.accept(new FireFinder())) { + firePositions.add(entry.getKey()); + } + } + } + return firePositions; + } + + public abstract void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); +} \ No newline at end of file diff --git a/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java index 60b855d..a371a8e 100644 --- a/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java +++ b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java @@ -3,26 +3,23 @@ package model.ExtinguishFire; import javafx.scene.paint.Color; import model.BoardElement; import model.GameBoard; -import model.Visitor.CrossMountain; -import model.Visitor.FireFinder; import model.Visitor.Visitor; import util.Position; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; -import static model.GameBoard.elementPosition; -public class MotorizedFireFighter implements ExtinguishFire { +public class MotorizedFireFighter extends FireFighters { private final Color color; - public MotorizedFireFighter(Color color){ - this.color=color; + public MotorizedFireFighter(Color color) { + this.color = color; initialize(); } + @Override public Color getColor() { return color; @@ -33,75 +30,45 @@ public class MotorizedFireFighter implements ExtinguishFire { return visitor.visit(this); } - @Override public void initialize() { - CrossMountain crossMountain=new CrossMountain(); - boolean canInitialise; - Position position = GameBoard.randomPosition(); - if(elementPosition.containsKey(position)) { - for (;;) { - canInitialise = true; - for (BoardElement element : elementPosition.get(position)) { - if (element.accept(crossMountain)) { - canInitialise = false; - break; - } - } - if (canInitialise) { - break; - } - position = GameBoard.randomPosition(); - if (!elementPosition.containsKey(position)) break; - } - if (elementPosition.containsKey(position)) - elementPosition.get(position).add(this); - else { - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - elementPosition.put(position, boardElements); - } + super.initialize(); + } + public void moveAndExtinguish(HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> newMotorizedFireFighterPositions, + ArrayList<Position> extinguishPosition, List<Position> firePositions, GameBoard gameBoard) { + addElementToElementPosition(newElementPosition, newMotorizedFireFighterPositions.get(1)); + + for (Position newPosition : newMotorizedFireFighterPositions) { + extinguishPosition.add(newPosition); + } + List<Position> neighborFirePositions = new ArrayList<>(); + neighborFirePositions.addAll(gameBoard.neighbors(newMotorizedFireFighterPositions.get(0)).stream() + .filter(firePositions::contains).toList()); + neighborFirePositions.addAll(gameBoard.neighbors(newMotorizedFireFighterPositions.get(1)).stream() + .filter(firePositions::contains).toList()); + for (Position firePosition : neighborFirePositions) { + extinguishPosition.add(firePosition); } - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - elementPosition.put(position,boardElements); } @Override public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { - List<Position> firePositions = new ArrayList<>(); - for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) { - for (BoardElement element : entry.getValue()) { - if (element.accept(new FireFinder())) { - firePositions.add(entry.getKey()); - } - } - } + List<Position> firePositions = firePositions(); ArrayList<Position> newMotorizedFireFighterPositions = new ArrayList<>(); Position newMotorizedFireFighterPosition1 = gameBoard.neighborClosestToFire(position); newMotorizedFireFighterPositions.add(newMotorizedFireFighterPosition1); Position newMotorizedFireFighterPosition2 = gameBoard.neighborClosestToFire(newMotorizedFireFighterPosition1); newMotorizedFireFighterPositions.add(newMotorizedFireFighterPosition2); - - if(newElementPosition.containsKey(newMotorizedFireFighterPosition2)){ - newElementPosition.get(newMotorizedFireFighterPosition2).add(this); - } - else{ - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - newElementPosition.put(newMotorizedFireFighterPosition2,boardElements); - } - for(Position newPosition : newMotorizedFireFighterPositions) { - extinguishPosition.add(newPosition); - } - List<Position> neighborFirePositions = new ArrayList<>(); - neighborFirePositions.addAll(gameBoard.neighbors(newMotorizedFireFighterPosition1).stream() - .filter(firePositions::contains).toList()); - neighborFirePositions.addAll(gameBoard.neighbors(newMotorizedFireFighterPosition2).stream() - .filter(firePositions::contains).toList()); - for(Position firePosition : neighborFirePositions) { - extinguishPosition.add(firePosition); + if (canMove(newMotorizedFireFighterPosition2)) { + moveAndExtinguish(newElementPosition, newMotorizedFireFighterPositions, extinguishPosition,firePositions, gameBoard); + } else { + List<Position> neighbors = gameBoard.neighbors(position); + for (Position neighbourPosition : neighbors) { + if (canMove(neighbourPosition)) { + moveAndExtinguish(newElementPosition, newMotorizedFireFighterPositions, extinguishPosition, firePositions, gameBoard); + } + } } } } diff --git a/src/main/java/model/GameBoard.java b/src/main/java/model/GameBoard.java index 01565fa..4cfd2b6 100644 --- a/src/main/java/model/GameBoard.java +++ b/src/main/java/model/GameBoard.java @@ -17,6 +17,7 @@ public class GameBoard implements Board{ private int initialCloudCount; private int initialMotorizedFireFighterCount; private int initialMountainCount; + private int initialRoadCount; private int step = 0; static Random randomGenerator = new Random(); @@ -27,7 +28,8 @@ public class GameBoard implements Board{ } - public GameBoard(int columnCount,int rowCount,int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount,int initialMountainCount) { + public GameBoard(int columnCount,int rowCount,int initialFireCount, int initialFirefighterCount,int initialCloudCount, + int initialMotorizedFireFighterCount,int initialMountainCount,int initialRoadCount) { this.columnCount = columnCount; this.rowCount = rowCount; this.initialFireCount = initialFireCount; @@ -35,11 +37,13 @@ public class GameBoard implements Board{ this.initialCloudCount = initialCloudCount; this.initialMotorizedFireFighterCount=initialMotorizedFireFighterCount; this.initialMountainCount = initialMountainCount; + this.initialRoadCount = initialRoadCount; } public void initializeElements(){ FireFirefightersBuilder fireFirefighterBuilder=new FireFirefightersBuilder(); - fireFirefighterBuilder.Build(this.initialFireCount,this.initialFirefighterCount,this.initialCloudCount,this.initialMotorizedFireFighterCount,this.initialMountainCount); + fireFirefighterBuilder.Build(this.initialFireCount,this.initialFirefighterCount, + this.initialCloudCount,this.initialMotorizedFireFighterCount,this.initialMountainCount,this.initialRoadCount); } public static Position randomPosition() { diff --git a/src/main/java/model/Obstacle/Mountain.java b/src/main/java/model/Obstacle/Mountain.java index d53d4ce..643242c 100644 --- a/src/main/java/model/Obstacle/Mountain.java +++ b/src/main/java/model/Obstacle/Mountain.java @@ -3,17 +3,15 @@ package model.Obstacle; import javafx.scene.paint.Color; import model.BoardElement; import model.GameBoard; -import model.Visitor.FireFinder; import model.Visitor.Visitor; import util.Position; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; import static model.GameBoard.elementPosition; -public class Mountain implements Obstacles{ +public class Mountain extends Obstacles { private final Color color; @@ -33,24 +31,11 @@ public class Mountain implements Obstacles{ @Override public void initialize() { - Position position = GameBoard.randomPosition(); - if (elementPosition.containsKey(position)) - elementPosition.get(position).add(this); - else { - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - elementPosition.put(position, boardElements); - } + super.initialize(); } @Override public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { - if(newElementPosition.containsKey(position)) - newElementPosition.get(position).add(this); - else{ - ArrayList<BoardElement> boardElements = new ArrayList<>(); - boardElements.add(this); - newElementPosition.put(position,boardElements); - } + super.update(gameBoard,position,newElementPosition,extinguishPosition); } } diff --git a/src/main/java/model/Obstacle/Obstacles.java b/src/main/java/model/Obstacle/Obstacles.java index c913b4a..52c830f 100644 --- a/src/main/java/model/Obstacle/Obstacles.java +++ b/src/main/java/model/Obstacle/Obstacles.java @@ -1,15 +1,38 @@ package model.Obstacle; +import javafx.scene.paint.Color; import model.BoardElement; import model.GameBoard; +import model.Visitor.Visitor; import util.Position; import java.util.ArrayList; import java.util.HashMap; -import java.util.List; -public interface Obstacles extends BoardElement { +import static model.GameBoard.elementPosition; - //void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition); +public abstract class Obstacles implements BoardElement { + public abstract Color getColor(); + public abstract Boolean accept(Visitor visitor); + public void initialize(){ + Position position = GameBoard.randomPosition(); + if (elementPosition.containsKey(position)) + elementPosition.get(position).add(this); + else { + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + elementPosition.put(position, boardElements); + } + } + public void update(GameBoard gameBoard , Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, + ArrayList<Position> extinguishPosition){ + if(newElementPosition.containsKey(position)) + newElementPosition.get(position).add(this); + else{ + ArrayList<BoardElement> boardElements = new ArrayList<>(); + boardElements.add(this); + newElementPosition.put(position,boardElements); + } + } } diff --git a/src/main/java/model/Obstacle/Road.java b/src/main/java/model/Obstacle/Road.java index 70a0adb..f4a15d5 100644 --- a/src/main/java/model/Obstacle/Road.java +++ b/src/main/java/model/Obstacle/Road.java @@ -1,4 +1,38 @@ package model.Obstacle; -public class Road { +import javafx.scene.paint.Color; +import model.BoardElement; +import model.GameBoard; +import model.Visitor.Visitor; +import util.Position; + +import java.util.ArrayList; +import java.util.HashMap; + +public class Road extends Obstacles { + private final Color color; + + public Road(Color color){ + this.color=color; + initialize(); + } + @Override + public Color getColor() { + return color; + } + + @Override + public Boolean accept(Visitor visitor) { + return visitor.visit(this); + } + + @Override + public void initialize() { + super.initialize(); + } + + @Override + public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) { + super.update(gameBoard,position,newElementPosition,extinguishPosition); + } } -- GitLab