From d7791947ce58fee2cf90bcb3972d430b8babae8f Mon Sep 17 00:00:00 2001 From: c19014407 <rami.chahine@etu.univ-amu.fr> Date: Wed, 27 Nov 2024 17:46:17 +0100 Subject: [PATCH] fix the problem with the firefighter movment --- .../executionHistory/executionHistory.bin | Bin 94827 -> 94827 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.10.2/fileHashes/fileHashes.bin | Bin 21847 -> 21847 bytes .gradle/8.10.2/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.10.2/fileHashes/resourceHashesCache.bin | Bin 23427 -> 24515 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../java/main/model/FirefighterBoard.class | Bin 6262 -> 6295 bytes .../java/main/model/FirefighterManager.class | Bin 2662 -> 2479 bytes build/libs/firefighter.jar | Bin 24654 -> 24670 bytes .../compileJava/previous-compilation-data.bin | Bin 21390 -> 21390 bytes src/main/java/controller/Controller.java | 4 ++++ src/main/java/model/FirefighterBoard.java | 5 ++-- src/main/java/model/FirefighterManager.java | 22 +++++++----------- .../SimpleFirefighterMovementStrategy.java | 14 ++++++++++- 14 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index 97b9b48bbdd5886fbb8a82db0b1683936f142b3a..e355aa2287bd5e0f1c3ff03697d466d9496a06c0 100644 GIT binary patch delta 681 zcmaF;g!T0k)(!q1wk0W*=H&$yrD<8I>Bf0Rl_eF4#%2XcNg0I#jE6EGYwOwjxqqCl zY+y0FBn3lca^gCL&1*cqa0$Fpauiy~p)z~TgozzrUNz2`ydikGz~aOI()Jv=?)G)^ zw1#afZu4&UO<{Cr*}N{|A-h21inr>E)n^~E>b-V5z46=Z$qVyRr`H)X3Qn%i6P%t~ zz$mrZA#oz3c+HX49JZqg(|l&iu}l2=vhMcG2OqW>-P`;kDO%kwu_!awsHCDSJuBHL zC9fzkyDTj=E2A{aBv-&Twd(TkzrxxIGd^q*uf2R~HzS77=Eg2TKA}xLr+1$Gv>^B7 z@+W!Sw|{MBoIN@5x!C4iGYXl6{$+(2Sb3V?)VTlG{qHPsZ^k*(A0{!1O%9&jEELSL z&?fYcq1V%zM#Jz0hWi-jP4`b>l$?BFHp^z#IS-hH45Hp!-g~s=O+n~XkE4gh<}<FH zd>}$&@_{)lo0S*%unH*7>tA`ilX*F3XJ_~}lgq}F>z5v8`Pgyx^JKSWX;Q~88Cy!e z-FNr0S087Mah1T2mdBsB8U2xFoHIFbrr6~80M^M5m&poPO`h0LUb_9qt6s(n8zj=_ zOy*nO!E*NB-_Mh0Etiu(kCn^+{(jzOG~ICWh2=6*eO|f=qRA(BTd*GSOjxzi<>1V> zpSKyU7iL^E*)UXbv-%2FMk$%x4_f9Tx2~9N6m!}W*`Id@Y`{%E#`%*MHpop*St%<Z zuwdZ<iOqHsI+~9>3NsY!pFDA;D$8S#3wEts#<95-<m^Ktlkca?O>SG|E$}zdGO~9K w<MVI3zRpY$*tTr*#T0%fkxw;NfAe=Vgxcpw^_`k?FZbWSzn?d=tW7@(0Hk_HxBvhE delta 664 zcmaF;g!T0k)(!q1wn-*wiOCh^Re5PCrD-YI6=r2-`Pq3%Y37vz&xK2GTsylqb5dfN z&ot#C4@V4<$%*R}Hm~vc!X;pI?|5eC$%Dr<LmU<ss~>whc|-8>?Y1e5;VhfiMLc8| z*gpMumP)bnrp=*W{+?IXSvh%OUh4EZV@AQr^?8ERa|;-yHajFvWE6j~pu({|PH~!l zK<8S=NmBlkcfLHb&FI|b7fI3Tc6i(x%=6EWU8{JV?gh?`*?R)_Y-AEZ7uwv|CCDfA z?o|z&z5DSJ4Ut-BVWFF8jI$>vJ{Q}(YepfHP<HmJ30&^-m6;(c=g$6|62&-Y`oknf zvB|-+n}rTICu;6}b?4Tqs710%uLwV6oHyM+g;8?yh1o2dS?4@p780*<>WX`JGVJ(+ znV-3R1hz1)oqQldWAcGHESr@V_^=Adi#@lV{d4bKhN2g9wDqg)Cf6@L%<}9;+q}tc z%hIIm-Zbws+;h+<u~OmOzc%I@2eyO!eNCEi&g8_IVw2+oSSLSRCM$4B@z>2~`%;Ry z3MANsKkrGM%(uLQ<<a(+M<&l&E+>H=39rD0d^4DQVY!Tyq1M^Gd^s_?Co?U>YL@nF zzqe)b;cZ6GL>L!MHVjqVtiFPkQL1r&>+Y5Vk+IUd<hRx2ohUyucgehMMyq%k=TBbP zAU8Q>rL4ftN7)`nMAwz5@gLuKGg)Ew<cTX)SsHh|JTiIL%4HnCz&0KdnS4K8ZgSfy pZ;W`~d@+TeNrdr2oQ7V;i|3Lv6z=4we@|Y$<K>afENjz`0sxbEHVOa$ diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock index 171bc6acfb0e06b4b6c3cecab799a21b784b60ee..47b1fe723adb49a563d8c731d828e28d88ca2963 100644 GIT binary patch literal 17 UcmZRsO8#f>m)m%p0Sp)w05eJiLI3~& literal 17 UcmZRsO8#f>m)m%p0RpxH05jbL)&Kwi diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin index 1b5cbc73c6e61e5bf820916145dfd7bf1d415d90..126205d93af5e1d5f3c159e10c2c1574e7f4a2d2 100644 GIT binary patch delta 419 zcmcb<it+j?#tq`03f~sl{?9l0b>-z$kxSZj6-5jTjFa<<9rYN%fFo<Nx#tRnNT$oD zXZ?R-7@%YBdB3D54Xh}A`Wvts2Ccfu|2<t4oOduRY<QEK<Z`a_;f5XOcY_tx*Fa5T zJ-#{Fi-%ERo|?y_?`8fr-48^Vvg}#+fK^p{mO+eS+c&x2JAx&z+^THyYwt%2$1fRM zO1|B9_p(<XXN_@{09bX!p$dp<-anJy`b4ng6}uEp_Vo2pkjed^WiE2-irGdnr#+GV zd0^G`^)V3D?2(hV`mRuTrQ|5IkV9qmnh6s-zPxIj0aX+XQ6w>aa;@Jjg+4Fc1kvP^ zyDeCccqXjc=mJ($?Q;;Kh;#kqa{maHy!v|I$(Q{TSn?_kZJul%kN^@%o;*81O5#(E z)!+Ob4WafqQhlf9+{*>)udlD$d^SLYQK9BYYYyAdglRrA<=7>DeOU*VmEgGzF+Cw} JGh<K~GXR%PmiGVv delta 419 zcmcb<it+j?#tq`03L?VmSs$32Pn#s^v5V)#&!-FwjFXe=qrNbJ0f)e3bI%nD<_y~A zJNBIY|AfKm>BO^zmqCg$W`*AYt6|VGoBZF?ML}=ttk&&zsaDJS8hRf**}VXyDEWl> zCx{~E{>{l=Jd6s@VmqG%yRL|yb52A~=a$fCkgAN7>Fp3z91|z^dq=Qjq#Smf{M!4G zg58_ueTI7u8YNaLocq_td;_d{R`dagYTj#;-}*$bBp+OpHrdnHN1<_l>+Y5Vk+IUd z<hRx2ohS#XPCm(Z2BMm6)#R<dD-?|G9nb7MdGMHKh{M8S^<!WUXUvLz1yLkXHo4aC zmV%+y*}Z%@F}f!+EyHS-_G|~4l#y~P4x)%FZF0GP1WU%O=tq+;`zL@Hzb2apfEY21 zlV=A=NibfB)6mO!@mz9-!kzr|@5x~OvtqP2pA8UURCuwV!m&M0ahiWX=UT@}QvOic P$q>^M{5CTNg)svFIt!W& diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock index 95bab72c139aec6844f8b0fcd849a0ddc30fa572..56dcf9b95c2b028d13ec0f3f34b338ad9e02551e 100644 GIT binary patch literal 17 UcmZRUE=)E0=%H|g0Ss8304H|?ivR!s literal 17 VcmZRUE=)E0=%H|g0SuT=0stra1P}lK diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin index 352033907f59a15563ae59d12b450338bd14ae98..48e6f72e72c2ef3eadd50630f7dde7a18cadf65b 100644 GIT binary patch delta 1842 zcmZqP&Ukn~;|3E6&5aFFhbroYUzsz2f#=l!P|#4A+I)=l`%ADeL%if<R|y4;MoZ^2 z@Ahxufe6O=Le>6n5jfYf$9L8qh<FV5<XDLSfsUJs(h6Hy+#!N-S0^u(c*wt`kY(xy zw>*eg?DNUBk{dK;PTD6ZEoagR5scA=nL68)e^&XC4-X;Yao;DaN<9!*`MY?>Rb%l~ zh+usE=D$(}j2g$LdxQn_6~sbBW3I!DI3D5tp3z^K7a|_LbaJYUg}}KL4B?l=s%}68 z;}=ezDr2E>HTuue*+2SiA%d|-VJ6%vVcppzA$JoZ9y59JQ5gk+yU#Xt?B1q-2O=16 zJ^8N8Mt(-KOlEUqVTf2<{^VBKKz>g7l>V7JmqWy2{3oB44G{R&_B`~O>$Eu#!8q;B zqH-4)HF&-E@@;N7<_8ts46~na8Sj;Dl~;@q@#yBscjYY{1ozFjY5%P6I8^XBOtDbK zPyf%7GZZ1>@v$&*5wSHN&-#D=0}+qex|vr&fKfo_!oh^p2TS=NqR}rWiz;Ra=ubEA zyAW3ijmkLA&83P0i~@FBGsX5F2!{q)OyT5Or5PG->++Yb>FRBU=#QHSv&~~mwcpp0 z$3+nFn4gn*l~3~f)L)rmB6a{G7TY-atg?bYXmskSphrQiP(j<tPnBl~q|8fbU!(9A z>fzYMlS@?^1oGQkbHaDlLp>HNJ^8IlApe$^HBrscg;3q`lTB3@F$t{PsQ5#Cqd@`t zW=9Vv;d)~R1_nt61_nV87WljK{)Wn=ClbcVw<SB}W}aqXV30#q!R;*_<NkE1qfD}_ z@bO>m&X_9B_^EnmOxBvu?X_xd&gMs;41#7xjCIjXV>gz`cgp<g-*YQ$b;2}c;UBlB zYYs$yJ(BM?lj}a`2TT=*cg#|V;Mp_3((2`;Vn&G<m?}Ik-cu8qmcaNwB>A<xs?91) z6+4sbZI{1e?h8#cpHbi~Kd~EA$(qWe=NTVudANq5Py75^ZYxX`jRLd#90mAa@p?tg zda&hLIHrnTqlA>Bep6oV4Ewdp^qJ#FBo+10fPc2Ved?<vm-W*8Tw;H|knl!Q0#zY4 zrPtPYrcB-Z1cN^r8-IhMA1zqdx%|;!oXqxT{i$8YHPUhmFwKZ9%CxnL{m%WCA#n1B zgNuzB80yjESH;-(<8RY7tFPzmifdb9#g1vnr^whmb{)AmxotN$Ub(^Hf~n$PR)~R> zr}<5d`+wd4&JxGs8K)y@7fsf`4+*Ug4V7tGcn(y0p!w$6F8-Q_>36PO4iYRmcxKfX zOlu}Ax?%EjTWasp8wFDCin~FD4VoDiTXR-L*t2_T$LyVU&N?pu(~NrN&4R1WZTkK4 zrQ4L-d)vJAFqLfTIlc4brv<qump{qtzWr-6rizu{T8ge)en>n%$KG1FHE9~A3X!KC z$2o%jE5Bc5vBQhI8I+|UPOS%JI}jGAm+DpApj8*lw6p%tM9sygFb%1B|HNtU#Ewge zPlNn(?wr_!sUnzVp-t!?L$9YbjfUY14EJHGuzx;r>!#pidlWrZo^AI2$LN8n<VI>` nx`o8nO0BvxhhjOnPGG7qh<a~%@6nbw1))<tjvf}94^jaD8HzBh delta 143 zcmX@SpRsv6;|3E6!HEq~hbroYUzsz2f#=l8u@VZC*GhOy=9RoT`Jd$S$ycRrY(6TT z!8kcq)?o5dS%b-}auSnG<yKDqCg(9ZOx}I-R{0Z*lh-O5Y*tm`V4Uo#oUnPXG6&=2 yyDAeV&s9A*xlB!b@=~=4lYP}ICf`-}oNT8tlZkibM#UfE8x0D$HamJa2?GEwe>NWg diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index f08260a3a186325b43aa1f1263fafa4e06b8d5be..300e8a5a0a0c9b8c3c4829f56649d150fd04b8fe 100644 GIT binary patch literal 17 VcmZR+;bwJ3Kx+R{1~6cJ4*)R$1kL~e literal 17 UcmZR+;bwJ3Kx+R{1_(F{05IGHs{jB1 diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class index 3e742235542383603f5bec9a42fe8c9c5fde97cb..88cc5de061dc98369fb8cad93449d873030dfdee 100644 GIT binary patch delta 335 zcmexnFx_y&WmbI$4WF#UvPAvTlFS_a;M5XpB(85_0W#Mov$$mQC)PQ<T#Nz?EDS6R z3=Bn+X9zn>Yi(gr+{Q53Pg{2<Ll+Z6IEcTKA&HSeOLy{1VcB{k1|9|mhEfI&h6)BD zhDrtnhAIYahB^i-hI$5Xh6aXUhDL@Mh9-tYhE|3&hIWPmh7N`u3=9lf5IY!lGVEet zVBlcLVz|Jd!obL2#bCj3k>L^p6N5K{I>TiK6$WO8LktWIVhl`BRht+Xp>mrTm?t-i zR0{Sma4_^Ts5101STgi8*f30(%q{v(aSDSh!&C+xhG`7m4AU7R8D=n~GR$PiW0=iQ z$S{YYgkkPxDKQ~N*#!(742v058I~}ZGc0AWVpzct&ajdplVKG@4#S$wp5nTU0Hdu> A-~a#s delta 321 zcmbPk_|0I$Wmb6u4WF#UvPAvTlFS_a;M5XpB(85_!Dc45IlNp9{~1^qSQr=>QYWtv zcCO#XFxgLAcPB#^6GOO`_ErW(E$wX#)3qYEFtD>EY-M2A-oU`Xz{0Sdfq_Afft!JW zp_GAxp@Kn(p^`y?p^8D9p^m|dp`O8=p@G4lp^+hkp@kump^YJ#p`Bp|0|SE=#43iJ z47(T@7&sVW87?rWFfcM$F=#VfWVpnj$i(2zAjfc-L4|>t;Sd7@gBSx7RM{p5Mv&a( zIU@Cf-3%NIJq)T0y$qHNeGE1X{gZV>-ziRJkY$*{pu;eg!JA<kLnOm=hE#?b40#N* z7z!C?Gn6pQ*=#K)#3(zTfrDWYgDS&f26Kib3|0)w8NwM>Fk~{UWXNGyy*W!<mk|K0 CrAZC| diff --git a/build/classes/java/main/model/FirefighterManager.class b/build/classes/java/main/model/FirefighterManager.class index 89b6c24ed9ef15fad7b0854825234ded5a00d66a..409f7446ed1fcdee1bb253c76f39f4525a39d7b1 100644 GIT binary patch delta 823 zcmaDRvR;_$)W2Q(7#J9w7;-mqH8It5GFUNKvoqN6FxWEKF)|2bC6*=X=OpH(>jzgB zm!#%0GBD?tmM}7i`haCJ^YsIYGV@A;ONvqxbFH};92gwg8Ju_+oEcmg8HBN@VPs%0 z0O`odV`LE3fS3X{-#;lUHCe30S~HBBL4m=IhrykJjgf&hIVUx-XtOYL2qTk&#^g9A zIdzDh(vr*^eV@$Y5^GI#0Y(Pyywvi^^I2pjUuVgh9KhPZxODPG)}+Y-Y>JbO*)~dh zFfcGMF?cdCF>o{RFfcH%FfcN(GI%jCGI&q^&!%SU!@$5G#K6M9z`)JG!ob78$-v7X z!obJi%fP@O#=ykDz#z)t$KcNZ0-|6u7#SED0vH0pCM2=jG5Sni$Sz(FQg6q=#=y*= z$q>X4%)rXPz@Q7)sml<;5X`^`77Jwv2AiwP5XKP9zzh}(XNX{6VTfd4VBln6`oqA? z_=`b<fsrAKA)0}S!JC1BQI~;*frEj8A$~UlZ{&6cek&H;oeZjs3|6d?tUDPr8S5El zGFXF{`iu+*7(}etw6-v?OR{O}>|`)zVX$J~#9%4OzKy{iM6+#Uu$N?!WZ%gk&%_YE z{Qp7SoeZvw43aE<k}Mm*K?DjEEe0+I1_lWRP6lZPbp}}mGX^;ZI|g|MHwIOP00uRN zU<P%DNCpjt7zRxSUxs=H1`h^y1~UdJh8Tue26hH@22F-IhFAtRkfY(@5YG_LkN^&c zc!orVByc#yGYByVGcYr7GK4WCGYB)VFr+XrFld3}1f)I{u09Q}-V?6g6B2Gp415es ze;EYX85GzVw0<!-GC(3eoq>@dgCP?Xijx(&#PmTvV*?wg3yxwQFq;+XK!~0!21bT# IaI(n(09s;+E&u=k delta 1048 zcmZ24{7i)F)W2Q(7#J9w81grAH8It5GgvWLvoqN6FxWEKF*5LGC6*=XmzHGa==&xX zFfuTwr<O1>sA>3s#d8w#()In5vQm>vtTi!(xEUN69N8J1co>`+R8Y(c2ART<oS#>c zn3-1$Qs>IU;KrcB$icu?l$x7gmbzJyIfRkPKx1+olY$u7GO#0jGK)*B85wxeGK*3t z?_rUV;?7Gg56CahEXmBzV`SjYOHC|Fs&vaNN-dszjU|VLCoi>pvN>xvQ;Wvr7*>VJ zPgorpH76S|D^Jd1>y>tAU|?Wk@L*tK;AY@qU|?WjU}Rur@MK_Q@R}^du4e1az`!8H zz{0@5z|FwIz{9}Fz{?=Qz{lXjz`!8Jz{J47Aj;s&;Ku+0qF^%^85kM-83Mp2l(O5^ zBTNut;A9YHP-75c&|we-n_$Pl#=y*=$q>j8#K6kHz@Q5^OP3*-A&7wyEEd8L1hz?+ zA(SDAff+0o#t_cH!Vtm0z`)7C^oN0&@fU*z10zEuLlgrOgBJq><97xY25trh2K6nw z8F(YNGw}OCX)6}3EerxX8B`e=tXL&kcQR-)GR$P?ob1OTU9Tg_zLUX{iQxc)f)$4( z2SgF4BqvmnK8U5y$Z&u`#EMH>l4~b}Jrl!B22n86g^3|t7bGUn#1Ovx|5-^EkYON> zt|Z$|1_*;4!dU*lSWA*+D}#XU25^{z!pMn1pq_z&L4tvUL6Sj`L7KscL6*UhL4m=K zL6ISsL5ZP)L7AbEL4~1<L5-o8L6c!RgBHUA25p9w3_1*J81xu6G3bK>HHLwcA(ugx zA(|nEfs4VBA%h{7A%=mS!H*%DA&x<qfrG(_p`0O}A%=mCfq`KQJjk~&)F&_`g2Q|Z zLlQ$W0}}%W!y1MZ24Mzf20@0!45<vl3@i+33=9k=46IP&JQz5@h9oeg!*yoBb$Y;c zdO%~#mx1*kgA6-^0vKuiXRu=6VrSrBXK-L=u&M_ODzGzXu``H(5s1yeVDyWD=|6)U z11nr5L?HtM10?-sGB7e^F=Ruco<W}hlm;0XSV0jD3ScG%Pyn-m9cT;=BOWlD73z10 PAvp}3j10Np{E!C#d*-Yk diff --git a/build/libs/firefighter.jar b/build/libs/firefighter.jar index 499a4746df06417ae513e85862d43c1009313872..d8dab65624dde65d70f5b73fdf1561585519888a 100644 GIT binary patch delta 4654 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 QHRJZl$_c7$>=7WH0Gy__ZvX%Q delta 4642 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 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 1359edc24a31a1f301ffff7a8d63ae879abe849e..d99f127bc5bc43cb13f95f102d8b43cfa8c61d5e 100644 GIT binary patch delta 126 zcmeBM&e*q{ae|G&D<wyvg&Zog*G!n$@#R(HjEO$|0y4QDw9G|rT`}7z=CmiWKX2me zSb;t--2~C(le;Zgk9a1m+UPPlg3(Ig_$6aY$+!FNUiRwatTC<<*u04GRG`u}F3;^; idONuEesk{RVrb1t%u8op&&0?m!oaYfgOO2<fdK$NQ!qmS delta 103 zcmeBM&e*q{ae|G2(Y@oDohJ_-(+qJ~Sgd~R=|rD?fyVu<yIT%K#!By!-&T`%qI}}( zSOG(=vwQh+VsuYtT87mu?b$v#g3(IA?oIPP!#xL$5-SzX{cB^sv3U{WsX+Gq9E^-= K3=ETVf~5h!;w?Y` diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 7305525..9213bb9 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -45,6 +45,10 @@ public class Controller { // Ensure initial UI state is consistent updateGenerationLabel(); pauseToggleButton.setSelected(true); + stopSimulation(); + board.reset(); + grid.repaint(); + updateGenerationLabel(); } diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 7a45e30..5fd8107 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -124,9 +124,10 @@ public class FirefighterBoard implements Board<List<ModelElement>> { // Update firefighter positions FirefighterManager firefighterManager = new FirefighterManager(new SimpleFirefighterMovementStrategy()); - List<Position> firefighterModified = firefighterManager.moveFireFighters(firePositions, neighbors); + List<Position> firefighterModified = firefighterManager.moveFireFighters(firePositions, neighbors, firefighterPositions); modifiedPositions.addAll(firefighterModified); - firefighterPositions = firefighterManager.getFirefighterPositions(); + this.firefighterPositions.clear(); + this.firefighterPositions = firefighterModified; // After firefighters move, extinguish fire in the neighborhood extinguishNearbyFire(modifiedPositions); diff --git a/src/main/java/model/FirefighterManager.java b/src/main/java/model/FirefighterManager.java index ec12a13..56c77b8 100644 --- a/src/main/java/model/FirefighterManager.java +++ b/src/main/java/model/FirefighterManager.java @@ -20,30 +20,24 @@ public class FirefighterManager { } } - public List<Position> moveFireFighters(Set<Position> firePositions, Map<Position, List<Position>> neighbors) { + public List<Position> moveFireFighters(Set<Position> firePositions, Map<Position, List<Position>> neighbors,List<Position> firefighterPositions) { List<Position> modifiedPositions = new ArrayList<>(); - List<Position> newPositions = new ArrayList<>(); + for (Position firefighterPosition : firefighterPositions) { // Move firefighters towards the nearest fire Position newPosition = movementStrategy.moveToClosestFire(firefighterPosition, firePositions, neighbors); + System.out.println(newPosition); + System.out.println(firefighterPosition); + - // Extinguish fire in the neighboring cells - List<Position> nearbyFires = neighbors.get(newPosition); - for (Position firePosition : nearbyFires) { - if (firePositions.contains(firePosition)) { - firePositions.remove(firePosition); // Extinguish the fire - modifiedPositions.add(firePosition); // Track the modified fire position - } - } // Update the firefighter's new position - newPositions.add(newPosition); - modifiedPositions.add(firefighterPosition); // Track the original firefighter position + modifiedPositions.add(newPosition); // Track the new firefighter position } - - firefighterPositions = newPositions; // Update the firefighter positions list with new positions + firefighterPositions.clear(); + firefighterPositions = modifiedPositions; // Update the firefighter positions list with new positions return modifiedPositions; } diff --git a/src/main/java/model/SimpleFirefighterMovementStrategy.java b/src/main/java/model/SimpleFirefighterMovementStrategy.java index a8f59ec..31278aa 100644 --- a/src/main/java/model/SimpleFirefighterMovementStrategy.java +++ b/src/main/java/model/SimpleFirefighterMovementStrategy.java @@ -8,6 +8,7 @@ public class SimpleFirefighterMovementStrategy implements FirefighterMovementStr @Override public Position moveToClosestFire(Position current, Set<Position> firePositions, Map<Position, List<Position>> neighbors) { Position closestFire = null; + Position newposition = current; int minDistance = Integer.MAX_VALUE; for (Position fire : firePositions) { @@ -18,9 +19,20 @@ public class SimpleFirefighterMovementStrategy implements FirefighterMovementStr } } - return closestFire != null && !closestFire.equals(current) ? closestFire : current; + if (closestFire != null) { + if (current.getRow()!=closestFire.getRow()){ + if (current.getRow()<closestFire.getRow()) { newposition = new Position(current.getRow()+1, current.getCol()); } + else { newposition = new Position(current.getRow()-1, current.getCol()); } + } + else { + if(current.getCol()<closestFire.getCol()) { newposition = new Position(current.getRow(), current.getCol()+1);} + else { newposition = new Position(current.getRow(), current.getCol()-1); } + } + } + return newposition; } + private int calculateDistance(Position a, Position b) { // Use Manhattan distance return Math.abs(a.getRow() - b.getRow()) + Math.abs(a.getCol() - b.getCol()); -- GitLab