From bd82b0440e543d8661d64cfcd0072d88f114bad0 Mon Sep 17 00:00:00 2001
From: Sarah CHERCHEM <ls_cherchem@esi.dz>
Date: Thu, 28 Nov 2024 23:06:15 +0100
Subject: [PATCH] Correct errors

---
 .../executionHistory/executionHistory.bin     | Bin 38385 -> 38385 bytes
 .../executionHistory/executionHistory.lock    | Bin 17 -> 17 bytes
 .gradle/8.10.2/fileHashes/fileHashes.bin      | Bin 28597 -> 28597 bytes
 .gradle/8.10.2/fileHashes/fileHashes.lock     | Bin 17 -> 17 bytes
 .../8.10.2/fileHashes/resourceHashesCache.bin | Bin 22917 -> 23359 bytes
 .../buildOutputCleanup.lock                   | Bin 17 -> 17 bytes
 .../java/main/app/SimulatorApplication.class  | Bin 3173 -> 3178 bytes
 .../main/model/BoardFireFighterBehavior.class | Bin 10237 -> 11150 bytes
 .../compileJava/previous-compilation-data.bin | Bin 22046 -> 22046 bytes
 src/main/java/app/SimulatorApplication.java   |   2 +-
 .../java/model/BoardFireFighterBehavior.java  | 102 +++++++++++++++---
 11 files changed, 88 insertions(+), 16 deletions(-)

diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index 24f92def9427e1eb2fb7fa1d1b80b802329454ce..a8f96d75e06c648f54523535192c0778b5ebbf13 100644
GIT binary patch
delta 340
zcmeykn(5<erVUJmc1Bs5NkysUW?6X|X-O&BNfjn0iK&ITY3YdqC+G1_Jig|o>K!*9
zU#?4+^u91+2yJ#KEZ`B4oMShAWodP6`1B9w6ej*K+I*mPF0%mF>y=V1eBV+(2RD6C
z$YhJ&oZI-3TOjJhWTi#fbNUo4zCF0?`svE#yxz&;-gVFS@x80N?(lEYH-%jOdtHCK
zmu)wCHCduhL%I*l-p0(#AYdn!;g+?xO0D+XJT(WM?VOXN`wUnP{@=Q6a(~}%iPzlu
ztH0a1J>9iU)iqUO&BhrG+m>xN>I<LzKecDG-UI<gmIwd0F5B!hF`QALOHZ>_lvD8U
z{5MiP1)B~^PhL4mm1S<jwq={|WH>Sk1d7`F>Q8Q9X^!NW`rr^-;bz^e^^Ef8PHW{`
dO!~+<NnPQ)d5iG2RbUI|tzl$gWMEMF2>@r#nz;Y~

delta 340
zcmeykn(5<erVUJmcDcrR`32c!X2nHG1qG?;Rk<1Ixv4p(#o2`dE7mA-sQ#-g7PPRv
zb}fBY+EHc<q0J731v~=pB%97$s^DlgT$9QgP^b{O`9SSlW`V8iBUSp}7|+@m8<F@R
z_0IRrxs4yW1zv}jimm_OzPqQ#RkUpBHRj2Ay_3Z^e%`*d)oRy`bu$g-9<Z1cJiY(p
zlI=!MCrk8cNY4hdw=pv_2uztQx$@X5%QKw<S=Nk!#_^M*`wUomTf3J|?(h38v1(!V
zY!$J6oQ}ftmixS$*mtY7d+Bzgzy6c|r}k{tn;^i*vbD8)>1L;i;fw+=4Mb-~B*#Tq
z{xF^|Rg$1OdF3QkmRBI@I~k6Q0(k~atCXL-ZfMm$KmApym(*t6to4lY>#bs*tk`yb
a_LqbRHix}j0e`_3%v;0A!pOj&@)H19x|&b`

diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock
index b9623e111c2e3519d0d7451ff86d8c40bb498974..82c86cabe8e28e7e1cc8922b1aa181f7d4a721aa 100644
GIT binary patch
literal 17
UcmZQRe96UU<&lZk7$Be@06uL6i~s-t

literal 17
UcmZQRe96UU<&lZk7$6`606s<qWdHyG

diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin
index e6735fb5271f9b0ac021a90356e43e33b935e1b1..8477a2464b3725af3e04b824f9c1264a39c25f8e 100644
GIT binary patch
delta 235
zcmdmbpK<Gb#tmzeB%Z9>5@Pkc>iQ<zor21*wp?LgV4PfX==b!^N0Zzb751k0a+g>~
zF44AGd?nzv;SsRx**bFuFtDiGtex_US;4#R`98jPb=MvKP5P#g%YP57>d?O~up$PY
ztjUU@!jmI1M3@i#>zkaPq0fA_{@~<=8IKfRbLX%AZs+!N*EUtxREaek!5YstNI*1d
z_ibLBxt)>uZ2g1DvDx35&o;<TUL7a3xiCkEQQ_Qat$d3~A2}zfD||O^5#9#Xss+&+
PCO26zPkr-~+>49=`3qi>

delta 235
zcmdmbpK<Gb#tmzeBxbET`Sq=*>5{@KuGc~*GE5j47$=v^aZTHNG|7!o;ZL>Ci{E0^
zQvV)_CwG?%T?Wf8Iv~sd23lO3wNrjED{TC{eQT@Lt{dxS8q7UlF)0|VYL5GKup$PY
z)X9pW!jmI1M40Ee&z_v0q0hYNQ19f08IKfJEzF*+BDRmyQFz{RpLY}cz#11Fx&_gw
z{&(}@%<YWKiw<p_9Gm@}dC{R)lUK({Z7$5wVN_Ue74u}pw)3;UBt)<|?Bxo8YW)k*
Q8YVYcF;9K-liZ7p0FP&0d;kCd

diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock
index 1ef521d2fc05d60bf08236e1f7d536db41e93026..3b9fab559fcbf131fd719c12b0635ce3bb71ef8a 100644
GIT binary patch
literal 17
VcmZR+_F~glt9wx?3}C<<2>?YB1)Bf>

literal 17
VcmZR+_F~glt9wx?3}C=?1^`8a1`PlJ

diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin
index 523eb83b498d61d5ed383b33e97a1e7d6942c023..c8f08e9807b5c74a3c7192f0c0b45de7f17b08b8 100644
GIT binary patch
delta 755
zcmZqO%(#CW;|3E6#{SKw5)MoPE8kk=T+L|z#sCIUftz!s0+<EfaTRq-ntBw11sS5Y
zPu?o~L*UP(!yE?;8y%p6zb7x1YY^Z(+xYqG^_p^sU}WoLS$PEw-W95E^KGv;Lj<F4
z{)YnoS2O49O<cwZ71y6^D&NSz@)?Wtm)f6DG2Y2*<$nn1S*_%47Zv>r6`VSGu7ZMq
zzWvII1F4fgK?EaTPu{9v$zRK$6F;}A1}b)P@>7KX0jsy(LV^KW(h$LD*~z+!KLmWv
zBp$n)`9cpO7`c42tWpG{K-QrfD`qEMsD+3|6>rW}W@2RGt=y>iLwuvb0<O)D9xj6Q
z#taM$k_-$Cf*>s5=IOJIsjKOL%(ElbQkuCl7#JAjP*uE`qPDkWr-UE>+ZBsfL@rXs
zRN=XD_r0f_@6Yee)|vgmZT<&L6=Bn#`PAxpObkj(tM^P6P{U%#=^NK}?KD5?+_L$O
z2;Wt6FHA$Mwu!H57F+Y%%EkG!&BB9+F;y&R<6F1<)XEp%-5HnGuloBGQ^lc&^;c8d
z?tbiZG1oa*x>G$AQ;FmpyXh-St7F5be>kTw@rMzn3da+=QJ??&JyO)YXmO>wDGgIa
zK)h<ZrdPDY+CQu2yF7fahNQw48t|rmdaoD%nCn0Jo7b$qsg3K9lt5K*y<RER!uKup
Ob8yoKg-o_+kO~0d@7QDj

delta 82
zcmdnLjj?qz;|3E6#-`1t5)Mq8d!;;>C%={bF!`%o#pG6biOFZ>D<{V(yq}z^C^31e
pqT%Fwitdwbl|F2CRSsaByjJBG6OZFY#UJ7u4Q_C6cJy!&1OQ*XAiV$p

diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 4010607332a77182bc40b7835e59dd12503bbd11..59300afb8dff4a66b15052eed24bbf756b523406 100644
GIT binary patch
literal 17
VcmZSn@!s@&$JN{N3}C>x1pq}51^WO1

literal 17
VcmZSn@!s@&$JN{N3}C?M4FE)^1(E;&

diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class
index 83f842461bbbc81062b3633e7a0bcc6a515f6fa3..727feaf679c59fc947283e1a9e98fc8f9760413b 100644
GIT binary patch
delta 660
zcmaDV@k)a0)W2Q(7#J8F7?y10`o_Y@GMSN8hLxFtfq{9lEbC0hy3N~J(-`?CaWPD0
zn8MC5m4{&(!}QJC>@19oGbbBx$STa{V&Gty!^6<U&@I5w&B(yxnU|MZ<eZaOT%20W
z&ahx|E{7J&B1Q(e$psv8lXr4VQY>bWWGG?CVqj!QXJBApVgT_=k@=HzIHm2%7#JAz
z85kKD85kH?wYD=bZUieXXJBAp0}JvpR4_0w@POH@43!L3V0kqLbp}R;vdKp|tr^QF
zGjhqRf>enyFflMNXhBthSlnQpj11Kb>I_T_Ws_aG<lRAL3o)=TFfgbxurjDIa5AVf
z@G@wC?SYuU2RDI_0b)W80|NsK10zE%0~3Q50~^?^)m*lG>}+go+ZcSHj-LFDOW7IZ
z5G}CrmQZ6j7z`Qe85$TE83Y(K85$Xy7?>C|7z7!b8Cn>a8IX<E1$(+|atya_J;Ir$
z3_J{G3?dBX4AKl1NY0djn$N=^z|hLj#=ywH$<WRa4+<Ct1_onzsP15hfjW?Zfq@Gg
zM%D~03^rh+U?JPV(8<6czy*q6umQ0Q40;R<;9zIj!H|G301_>7NSav~dKh{^Nr|Bk
j969|A6QEHxk%5_E2E#0dxeW8bRx>ipXIRLvm_ZT%PxD;j

delta 673
zcmaDQ@l=BA)W2Q(7#J8F7#45j`o_Y@JeiSIX0j6NOvc*Hdsx#L`6hBPOk$YK&M<|C
zVJgG4%?9i&jE*xH8N@YwvJ%S@(<<~+%Tn`7^j$%uwPqMU8^bIv1`dYVJPe%-T>=bU
zj0`-Ud3mWt&N+$2#i_;Y4D%ToR3|TF7oS|u&d0{iu#k~K4$5VpypLm&Vj+VhLoq`Z
z10zE^0|NsS1BhRO%%5DyDQ#EEz`&r-z{tSJz`($&wVi=+BUo`60|NsaSdf>YoPmLX
z2h3(=s9>lB%d0V{GcYogPCmtH%~&>>jZ0n?q)Lo|iGhJZ3#tml;s)zvWT;|LXJBF|
zo$SRW?+!9sh=GNHfkBmll|hYxlR=$<mq7z;55xpMxCwj=5EH5y7#LU>7#V69m>9Ge
z*uZ9O;IidoV`F36#^3{W^yJ@M%FZB%Xn~Elgc`%aV8~F%P|v`~Ai$u>(7@2hz{H@z
zAjr_f(9FQhfNZob*wdwx6S;L6%O>}8i`RopgE&eCY8nrN07DByD+40~Cqo-UJSZ3#
z7#NJ<VYq`K2I?FJ1_my0h*&eQFxY_o2Mfn`h7JY>0WMJ7LJiPkU;u|P%MOMFgnm~@
zB*-CYW?|@N=wV=BU}oqAM@1h)KQw|SFfcPrXPC(_hhZ+*YDR{63=0?*F-QUc%CTn*

diff --git a/build/classes/java/main/model/BoardFireFighterBehavior.class b/build/classes/java/main/model/BoardFireFighterBehavior.class
index c98e1d5ce384655a278c407abf4fad53ad459ff8..bc326b5aa19727898f4ac7f353a0696dbd3ae8df 100644
GIT binary patch
delta 5343
zcmezC-xtnx>ff$?3=9kojCC8iwzJf8F>o_f@-S2}R5LPgCMV|k=9i_0<TElDYWS3v
zWaj7x<QHd_Waj5t`(!1SCF+C4f>TS7xjvc2CDxiz+zkE<wLA=U48e>H9Lf24C5f4N
z#UQ~39)?DSCPoIf#FP}roE%05Ne#GRlYg@a@>()9a51nmwDK^tF|<#XWKCo1<YDMy
z=$_ols>asK!_ddjKY1goCg((kN$d=hc^IZle$1-PHjRg2I>U^~B5c-tvlwQxGtA*(
zn9DGakwJX&LN@WqC2a0KvltfeFf3$P#K^!_k`HnvBZH8JCfx2EeUO+nC&LnkrR)sL
zco>#5tYBmi0Q)m1F)v*|xU#q;HJ6crIlr`IvOK#K_bP_f><nvo7}heZo9x2wrM!WM
zVI#vPMh5ZR#Oze({JiAElJLxu4Cnm3;*!L?l43>%i^&_=g(t5U;hvl;%s%-DyD0Y-
zhOO)j+jtnZGwhiBgx$hih=GY=12;o4!)_jiJ)p4ThJ~GXY9+{R`*;}kgB-@3T2v&&
zz|3$EWa**F>)18<g&0^E4uWFvC=bIihU1g1IqbPlGMr*(IL*UwhGEg<Rt^oeb36>^
z87@rT%;6_@iHG4b$Og8e)ZF~CR3Qddi0*4V4A&VJO_t}BG{4Eia0?V*+@%F6i6yCS
znMJ9^APesBFx&-+^FYL%bMi}5z!LX)7#=Vznw-xmR{w~H;V}anBLi<{UUE@tZfagh
za7k(bJHu00pn?-mP-0$6el8co69#5(21|w)JPa=xUNJJT6lYeYGBPl0XnKO=-taKI
zWq8NPz@C>{QR10b!pOj);i>5f((!?Zp^V`pBZH`hCp0d>k>x-691|PA5Ca>;PhWT#
zzA}89EW)M2@`H!r=VTi$X`A0X46F=!><oVy8TfMZQ&MyEee+Af>6DA%55s?uY&SPU
zF(V@nBNM{~Mh51B(h`u3wd{<noBO!_uyAtZrDmpQB;^-P?%*$&EGQtsC^p$aKy0(R
zKp&G}FnX4mEF-8e`H+ATW7Oo$Le6|KT#T`daqNuoJd6p9iJMu3*%`GNY6KWlLCF#=
zw`oT4voWS~F=jAkvNLA!Fl=PZp6o4hBs-UpK_wtRw;(gMs92#mRUzeY^P!amIf==s
zc_j)dsS1n=Wgr<w4#s>&1}msag}hXSg4EIyg@QyhO+^Zan-48eVAN5_%uy&xEiOrg
z3UDwMP8JYVW-Oj;B5D*`%E%z*mRbsuTUnBtnO6d0El{vhVB}ydXJk-7l`BXrQphV!
zOoy6frNGF@z~h;hms;eUlUQ7wTFlN^#mJyK`GBY#mx@n*es*aAJ7dk{y`o0-j4TX1
z3_=Wi4EziX3_=XD3}Ot7jBE@H3`~sd3``7>3{h}C2LlsBIvU@A!4NLb$soj_z@P}{
zb1?`ps37sV8H5<rk@z5c9kq}Ico~=&5>YG=Vh}}g5FY~*gCv6#0|SF710w?~BR>NZ
zqrl|#Vm^$5lmCe6^9wOBFxWAG9B<7i%qTM1O5D_2l!1Z4gn^ZTfx((VmXV!-5zJCy
z<Yr(3vlJM)7?{B<bw(Zr7BEYTk(YrL8VI1^5NF6^U}O~7yi44Qkx_8+SBdy~kW~c?
z+zh4+{EQNek_@a2bqxHBQjF3JYz)U4_!(swWf|BR1sM1l<rw7|I2afhH9<~dU;wie
z7^FZBVbo+)WRPNDVi0E(VpL*?Vqj*7XE?>E%n-%E!mxs&kx_*qih-5kBZCE_Dnk?l
z8zaawS_~`<;u;_gjA}3qjOs8Aj2bWvjG7E=j9Qa_OIp_7Vps$UDFz0{GzJz1b_NE9
zrMnqIBDXVy`Dkrn5N9oz#V{2r;H$NTL2oBRJ|lyl?oI|fMuwRT>AE`^To@S+Fces^
zXl-GTmSow<P{hP=fWdMng9Rgl6{{pGRHYS&1y#zXCCLUdOKS^5efTzpikS>jAg(0a
zPKFvLhFJ_eIv{2o6GQm&|A&_Up9YfD*~w7P#1O8nvy-72L~meVU|?YsWME)0V&Gw5
zU~pvMU~pm(WN>DXWN>3JXYgQ1V(?;UWbkI_V(?|?W$<H|z!1nVn<0o{F+&I=D2hNa
zpH$DF!Klrs!@$O1&Je~Z!KlN)!XU}e#i+{=1x^G@p)te3FqcseocuuHECx<&U5vVn
zpmYzGW8`39WYl6{U{GXW`^TWn&R_{f_J0{P*cl4g8SHI;GBEuDAt7k$(Pv;}xGn?>
zekMHz76wiR21dcjfwIDW;o$Ithx04caORQ(g|;3j#J4fDSg~qJvVy`$YYPJ;IA`gA
zLK_r-T9T~W7&<1emsYCpVPpU)irm34A$%9ZR0f8f3^SP+b~4OoWUyk}#IRVBWe3Ab
zN!A?<D|a!hXJFXIuo)B!pjc#=WQWG0B8UZzMGh@Vj%^Gb+L9bQ89-Jo|9^WqgQ5;7
z34pjD6G4W7jorntvmR{Z^8dnGI$IgSwGr_b#URGOz!1s6!4SnDz!1Zr#}LQh$dJeo
z#E{Go&5*{B$dJyE#gM^J%#h8{&5*;efFYk@D?<^(6^3GlTMQ)(j~PlCo-vd$ykw|g
z_{31j$j(sB$i+~{$j?v@j%N=Bc7`hq{Pm0mj5-V)3=0_C7!5%=hQX2H7^4xR4g)KL
z9>YyWV{qIvFbcwAoRJd};|v0fjEp9r^Z?Fd3JlB;GZ;A-*cdoKsz7lMQ3Xm5;8b7^
zN(EBjBw)$TVE><Cu>}JMI|Dad1e_=ez+8I<hMx@TOg|Z9e=#s2C5{J>v@zLL)=6v^
zC|}5LV%Q4}&I91koIF=nMy&;u%Z@P!f>Hx0+F?o|5xR@vFhuEnSsB3=D>g~CV+>+o
zrEEJHc1`Ay)2r{$l4RH3#&Bf$e@#%_q+-NPGXn=h3xfbd8-pH02ZIemCxZ_|7egpR
zH$wzNKSMUd1co|>Neq1qlNqKnOktSCFoR(&!%T*g409MRG0bPU&9H#s3BzKBR}4!S
zJ~Aw2_`<M);U~jNc-$msGqf?9g5zN=gA1b>I5(bT&|oxY)L~#}&|^5vXaR{EhTpKb
zVfYM-8-~}6mhiX%<x38b93)0Sa*!CAEF*8}2@hH(Q1c90>Pa&&gKLFSP?%`%U^uap
z;Vd(x0K=JKCeM@CtiQ;_5Dw2~u*ANL;R-mkm;XPy5ne!PF>o<3Fl=TJVA#SS#juq@
zgJBzk9>aD9ABG(a5ez#S5*c<e6f*2)C}G$G4ir$q<inr}E{#ByQz_Kf3=E~<R0^u5
zO6$P^z{H@(;Ld0Tsvf|J6BGa-WqKfQL*y7a7?{CHl8=GuFM}B*#r<Nig@%ST0~4rm
z530i$7#Lg_n83vz52&Qj-pK&+B*-I7;F6XLEO&r`o8cg17N`h?SjPi*9}lAqqYeWj
z10$m?qa7rG89>Dx$i?6i3Y6<1X0d@PIfi3k5A%T8tPo?M?y_fKWORUL0DVQVdQeFZ
z(Q^u?9*|X!8Q7qHv1DKdo6D^gxrITTC1ERrIJ#HPF>o=QM>38Z;sgdpMn{HMP-8%b
zGBVUNFn~NDz6RX-K{)0Ll5VI67#JCyAP#3>U}%E|sE*b)hO0i>TH6?IKr1k<Z49>&
z%zF@~);5NR;Oxf?4sa=O(!9yQ%20ocL4e^lgEYe(1~rDe3|b8Lz!pOyKnLn<Rt9x&
zs$c}C1yHDhML?MW8mjsXjEv6k5Hew40*4Tr7BiN>dCb7d@C0lN4+EnD0|Nsa)EY)m
z=K~VEj9Z|MhJ&D5Yw}kme#TjoS(WAMpG0nFcm^tso-;CRV|cxj;XSBTP+)~r^@FOa
zSqyB;|F45r_n=e<s&s0Y7-ljkX-Tqy>lZdi{Q}BkY~b4I6F84)!)h9BkQPvtv;2QD
zr~r%C-cS$Ed~OV&$a==W!SI|xfZ-*B9>Z$}JBBw5(G2eyau_}^<THF`s9^ZU(8lnc
zp@-oI!&HW!3`-gQFsx(v%dnl{AHyz228R8NjNotpwIA&mDj8kCO|NK%7)DocVWr2=
z$>;_xq7H%ssh)v>gJCBmG8hCHHZr=y%P3I&0XBq@gMk&I3KT&QRiJDO&aB!DEdLk~
z^~XPk5O9TI$<9z<`kz6Bff-(xFfbs+tp_yW)ia>vyLhyG$H)fu4=9B&FhG+nk|~~0
zQ&0^_MK^>Cw;}ZmOboe@mN5e;i7|tkHViJi8NlhnkHd_G-Heslj7^kHlw}cvo~|@Y
z$~K1AX6(8$5C(^qD7z@fHipkL8MvX$?=5VM%l}^lWnoC>02ix_ybK(Sd<@)-{0w}I
zf(#Oj!VHRxA`JCfjN%NYjFJqtjDif#j51)C#xQU)C^E<}dND{burp{e2s3&!NHK6Q
z2r?Kk`Y=H9nhQAkKuvKMMrcc%!3Ek9=U}j5^kwv8U}oTEuw?XSkYZqA;A1dj3}BFA
zU<JpT1OxMb20;dPb}0sKMn-mqCyb1Y3=G=87+4vYKpkLEkuv$bs%HH!D^O`749Xz8
zKxv(oc})uo<MRJETbLP_|3AqBDrO+QR04Mp6c{)e6&XYrl^7Hll^OIHRTvBy6&cJJ
z6&P$7HNc(&rA-9}0meXZMasjV#TW#3AQOWXV=#jhxF2H&^PDk*9XJ#~<+2?(6qvy7
z7i3`l!@$J&hk=t(`4<B##N9t3@i=*v8j`zrGyI8^WZlm2Zzm%IGebDo@mIi(KZ1xM
zIZ%IsQI`SKkP>0kXHZ}?U@&FWW3Xn_WpHFPMsl|(+}-+cciY3=?F4goJ%bb6-A+jE
z7GPk3x%(G`9?02@j3JDnkTMD-CkUe_Vl%KSu;qj>21d|89Mq7j3``6xpkl=p+)&ub
z0B&ZnGOy9m2KQQKGO#kQ(be9`$PA57tt||~+Th;MF$N*6Ee!Dxxmh4};P{2~UerK2
zgVBnCm(iMmpV6K{lF@-dn$d+pmC=<!ozauQk<p96nb8;QO09ZuC)5=d91O0|`j&yg
zl>yY-26bCq!ToY(a1{Wl9$Xm=7&*aJw<|*=yg9(ez{1bXEe*}~;S9`-5#YKlk}-;b
zfx&=*oiUn$nK6kmnK6Yije(IdhcS&on~^aO%qakqMPRZ7OqMZLFfcH1F)%V#GFCIz
HGDrddH5SVK

delta 4307
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
F1OV}1_(T8z

diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 1152e60afc282930b6f0635125dafd3d642ca116..a722c5845a8b0a1dd2e4f036f32407b625b41c76 100644
GIT binary patch
delta 71
zcmbQYhH>5+#tl+T0<XFASAVy2d%A0zs%xsmnvI*am?kp{c-KAO$M>%8y2HOo-xPBB
e?`=NI{D+w*e8XPDrPsF@FH2Z4bMsYpPd@;ORv~Nv

delta 71
zcmbQYhH>5+#tl+T0;?8g&sGuJ$LT0MZ@JIAiG7>3m?kp{Z2Y`^Ypd0+8|!8o%spT+
fDR}c)=0D6l%Mw=12;Z>RaOw3e#+$FQd-?$YX67K?

diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index bff0ea4..8449ea1 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -17,7 +17,7 @@ public class SimulatorApplication extends javafx.application.Application {
   private static final int COLUMN_COUNT = 20;
   private static final int BOX_WIDTH = 50;
   private static final int BOX_HEIGHT = 50;
-  public static final int INITIAL_FIRE_COUNT = 3;
+  public static final int INITIAL_FIRE_COUNT = 4;
   public static final int INITIAL_FIREFIGHTER_COUNT = 3;
   public static final int INITIAL_CLOUD_COUNT = 3;
   public static final int INITIAL_MOTORIZED_COUNT = 3;
diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/BoardFireFighterBehavior.java
index 4e5debe..f1a4ad9 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/BoardFireFighterBehavior.java
@@ -65,35 +65,68 @@ public class BoardFireFighterBehavior implements BoardBehavior{
         List<Position> modifiedPositions = new ArrayList<>();
         if (step % 2 == 0) {
             List<Position> newFirePositions = new ArrayList<>();
+
+            // Pour chaque feu existant, vérifier ses voisins
             for (Position fire : firePositions) {
-                newFirePositions.addAll(neighbors.get(fire));
+                // Si la position voisine est libre (non occupée par un feu ou un pompier), le feu peut se propager
+                for (Position neighbor : neighbors.get(fire)) {
+                    // Vérifier si le feu peut se propager à cette position (pas de feu déjà là et pas un terrain bloqué)
+                    if (canMoveTo(neighbor, firePositions, firefighterPositions) && !firePositions.contains(neighbor)) {
+                        newFirePositions.add(neighbor);
+                    }
+                }
             }
+
+            // Ajouter les nouvelles positions de feu à la liste des feux existants
             firePositions.addAll(newFirePositions);
             modifiedPositions.addAll(newFirePositions);
         }
         return modifiedPositions;
     }
 
+
     public List<Position> updateFirefighters() {
         List<Position> modifiedPositions = new ArrayList<>();
         List<Position> newFirefighterPositions = new ArrayList<>();
+
         for (Position firefighterPosition : firefighterPositions) {
+            // Calcul de la position vers laquelle le pompier devrait se déplacer
             Position newFirefighterPosition = targetStrategy.neighborClosestToTarget(firefighterPosition, firePositions, neighbors);
-            newFirefighterPositions.add(newFirefighterPosition);
-            extinguish(newFirefighterPosition);
-            modifiedPositions.add(firefighterPosition);
-            modifiedPositions.add(newFirefighterPosition);
-
-            List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
-                    .filter(firePositions::contains).toList();
-            for (Position firePosition : neighborFirePositions) {
-                extinguish(firePosition);
+
+            // Vérification si la position cible est valide pour le mouvement
+            if (canMoveTo(newFirefighterPosition, firePositions, firefighterPositions)) {
+                // Si le déplacement est valide, on met à jour la position du pompier
+                newFirefighterPositions.add(newFirefighterPosition);
+
+                // Éteindre le feu à la nouvelle position
+                extinguish(newFirefighterPosition);
+                modifiedPositions.add(firefighterPosition);
+                modifiedPositions.add(newFirefighterPosition);
+
+                // Vérification des voisins et extinction des feux voisins
+                List<Position> neighborFirePositions = neighbors.get(newFirefighterPosition).stream()
+                        .filter(firePositions::contains).toList();
+
+                // Log pour débogage
+                System.out.println("Pompiers se déplacent de " + firefighterPosition + " vers " + newFirefighterPosition);
+
+                // Éteindre les feux voisins
+                for (Position firePosition : neighborFirePositions) {
+                    extinguish(firePosition);
+                    modifiedPositions.add(firePosition);  // Ajout des feux éteints dans la liste des positions modifiées
+                }
+            } else {
+                // Si la position n'est pas valide, le pompier reste sur place
+                newFirefighterPositions.add(firefighterPosition);
+                System.out.println("Pompier ne peut pas se déplacer à " + newFirefighterPosition + ", il reste à " + firefighterPosition);
             }
-            modifiedPositions.addAll(neighborFirePositions);
         }
+
+        // Mettre à jour la liste des positions des pompiers
         firefighterPositions = newFirefighterPositions;
         return modifiedPositions;
     }
+
     public List<Position> updateMotorized() {
         List<Position> modifiedPositions = new ArrayList<>();
         List<Position> newPositions = new ArrayList<>();
@@ -201,18 +234,30 @@ public class BoardFireFighterBehavior implements BoardBehavior{
             // Déplacement aléatoire
             List<Position> possibleMoves = neighbors.get(cloudPosition);
             Position newCloudPosition = possibleMoves.get(new Random().nextInt(possibleMoves.size()));
+
+            // Vérification que le nuage ne se déplace pas vers une montagne
+            if (!canMoveTo(newCloudPosition, firePositions, firefighterPositions)) {
+                continue;  // Si la position est invalide ou une montagne, le nuage reste sur place
+            }
+
             newCloudPositions.add(newCloudPosition);
 
-            // Éteindre le feu à la position du nuage
-            extinguish(newCloudPosition);
-            modifiedPositions.add(cloudPosition);
-            modifiedPositions.add(newCloudPosition);
+            // Éteindre le feu à la position du nuage (le nuage mange le feu)
+            if (firePositions.contains(newCloudPosition)) {
+                extinguish(newCloudPosition);  // Supprimer le feu
+                modifiedPositions.add(newCloudPosition);  // Ajouter la position du feu éteint aux positions modifiées
+                System.out.println("Feu éteint par nuage à : " + newCloudPosition);
+            }
+
+            modifiedPositions.add(cloudPosition);  // Ajouter l'ancienne position du nuage
+            modifiedPositions.add(newCloudPosition);  // Ajouter la nouvelle position du nuage
         }
 
         cloudPositions = newCloudPositions;
         return modifiedPositions;
     }
 
+
     public List<Position> getCloudPositions() {
         return cloudPositions;
     }
@@ -264,5 +309,32 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     public Map<Position, Terrain> getTerrainMap() {
         return terrainMap;
     }
+    public boolean canMoveTo(Position position, Set<Position> firePositions, List<Position> firefighterPositions) {
+        // Vérifie si la position est hors des limites (par exemple, en dehors de la grille ou inaccessible)
+        if (!neighbors.containsKey(position)) {
+            return false;
+        }
+
+        // Si la position est occupée par un feu et que le terrain n'est pas traversable par le feu
+        if (firePositions.contains(position)) {
+            return false;  // Impossible de traverser une case contenant un feu
+        }
+
+        // Si la position est occupée par un pompier et que le pompier ne peut pas franchir
+        if (firefighterPositions.contains(position)) {
+            return false;  // Impossible de se déplacer sur la position d'un autre pompier
+        }
+
+        // Si la position est une montagne, aucun élément ne peut la franchir sauf les nuages
+        if (terrainMap.get(position) != null && !cloudPositions.contains(position)) {
+            return false;  // Impossible de franchir une montagne, sauf pour un nuage
+        }
+
+        return true;  // La position est traversable
+    }
+
+
+
+
 
 }
-- 
GitLab