From 342cb9d8bb521afb481cdc882d71743d194414aa Mon Sep 17 00:00:00 2001
From: mohamed Hebbache <mohamed.hebbache@etu.univ-amu.fr>
Date: Thu, 23 Nov 2023 20:45:22 +0100
Subject: [PATCH] factorisation

---
 .../8.4/executionHistory/executionHistory.bin | Bin 66955 -> 66789 bytes
 .../executionHistory/executionHistory.lock    | Bin 17 -> 17 bytes
 .gradle/8.4/fileHashes/fileHashes.bin         | Bin 28397 -> 28397 bytes
 .gradle/8.4/fileHashes/fileHashes.lock        | Bin 17 -> 17 bytes
 .../8.4/fileHashes/resourceHashesCache.bin    | Bin 25297 -> 25841 bytes
 .../buildOutputCleanup.lock                   | Bin 17 -> 17 bytes
 .gradle/buildOutputCleanup/outputFiles.bin    | Bin 19649 -> 19577 bytes
 .gradle/file-system.probe                     | Bin 8 -> 8 bytes
 build/classes/java/main/model/Board.class     | Bin 461 -> 606 bytes
 .../java/main/model/BoardElement.class        | Bin 252 -> 522 bytes
 .../java/main/model/Builder/GameManage.class  | Bin 1380 -> 1380 bytes
 .../java/main/model/EmptyElement.class        | Bin 708 -> 1392 bytes
 .../model/ExtinguishFire/ExtinguishFire.class | Bin 426 -> 156 bytes
 .../model/ExtinguishFire/FireFighter.class    | Bin 5867 -> 5899 bytes
 .../java/main/model/Flammable/Fire.class      | Bin 3842 -> 4113 bytes
 .../java/main/model/Flammable/Flammable.class | Bin 411 -> 141 bytes
 build/classes/java/main/model/GameBoard.class | Bin 6191 -> 6191 bytes
 .../main/model/Visitor/CrossMountain.class    | Bin 1207 -> 1207 bytes
 .../java/main/model/Visitor/CrossRoad.class   | Bin 1195 -> 1195 bytes
 build/classes/java/main/module-info.class     | Bin 337 -> 339 bytes
 .../compileJava/previous-compilation-data.bin | Bin 22217 -> 22218 bytes
 src/main/java/model/Board.java                |   3 +
 src/main/java/model/Builder/GameManage.java   |   7 +-
 src/main/java/model/ExtinguishFire/Cloud.java |   5 -
 .../model/ExtinguishFire/FireFighter.java     | 167 +++++++-----------
 src/main/java/model/Flammable/Fire.java       | 114 ++++++------
 src/main/java/model/GameBoard.java            |   2 +-
 .../java/model/Visitor/CrossMountain.java     |   4 +-
 src/main/java/model/Visitor/CrossRoad.java    |   6 +-
 29 files changed, 121 insertions(+), 187 deletions(-)

diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin
index d9a265d716e9f4309d7c4835cee4acfe1c269eff..ef3814db707d3311a601ee242faa1484aadf300d 100644
GIT binary patch
delta 1648
zcmeC~W_jAlvcc0s!;67|#cOs}S*lruX<<>7X<~U!dR1XkiD^n%UTI2cB?AQLZZ7o5
zVw`+F*PQXxWW@*rCL`m?=6UjrH(;FhJRim@Fb+$;E8|fZrz+o#@i>h0G2ce({iJ!@
z_Z$9@VC*W(OfA<-tH{k^5U}i0zB27wkhX)T-rryK<#k^`iYA8_=rM+GepqsyeRFY$
zQ@4&b1B0qE2+z(<%q}p=%Pq)DODZl(%c?L+GB3(XuQE%6x|qdo^TYd%Y@5x?n^-3+
zL>Ph`{HjK8a>pBe#_KTGysD9zyy3X<<cv75d_$eoWc?F@ljpwGVSENt(@>YocoD`4
zj1ZmtE{sREt@-M&*SR+$D$aeJv?_4-2gZrH`6;P6`cC<YMJba%CYXV&11Vm)M0m3E
zd(Fw4AT9t2<u`InHdz|P_!`+zkl@v&{F5C{^G<H~U^n?nEZ9X5^<I;8mvK+lj!=V{
z`oB?9;K&Bo2|o*rBIIw{F=lE<8BW$)E<gEO0#uvW<h~}M$u6HX86P05F_?V$lOf|v
zgn-KA4b7sHi$7Z-yc-yyGC6LgkiauZUh{8nf~U4fv6h-f9QB#puu`4zJ+junE2SqN
z{o=rQ3nnPIT4D0MRxSbS`A)K~PbDP&>@`#U8^5t@GJmu*%tL~!^(TM*YA~586zWjX
zNihNf=jEq)G~W<ikhjM1BGcvNT9XxG#3o;E1uJQcm7A>B&Oe#+yB;haK|;IQ1t!n_
zu0Od6Vo+mjFylj*Lkic+PLA(noqVB#U*M0j(WT!)-QRDCDR&>zn&&l{ah=lSsx{n`
z@3n%16QWi?fW7X+w$JZR?^aEI{&K;a2kDdRJLO>Zfz<q8=P=nU2JE83_2GyVVV&SS
zIk^oizCOVn5f~S`wI+Z5tvz{j7g+8>x5(tI9`4D-e-s%HfZVBQWE@jmlpK?rn3)%o
zl~|T2aPQ7ft-{0aB%T;5$h<E9qd58hMh!$}v+K2%;J%pi;qa0fiHCHrxfO;89J+IK
z)|35)n<OVs>{Vy^v8Cbh<fDJxS!TaG`gXFwKVz0DyBi))cK@d<5vj&KW6d#zrsqrk
z2o)_2VtoGY=-d5<_gE&++bkwAYtJ&Sc`t0!XEJFf@66xvc_Ub|i)Hf0J~OU)A3!P_
zxfth7HasmcS?Iqw%f=5!-%i&3ugSU?BsV#*UtIf2%bFEmYr>ThY_4pp;VV{I4U#c@
z!o|!WkR#}!*>gQg?%?7B3dR!i*(RUADJD_)jr(JIIak|-MBCOpPrbf9VD%rkCLipV
zpZw~-0L!)aN8e8V_g{x)_xq!7r|L0EN(5<KJNv+lS!BbWRR{OoVz{#PJ;-6*dXp#K
zlABt~C?Ne0EU-j_nL$AJUHZv<m+cOF)(dWvRJtlVdENv`iO>yRZobk9VpTeO79ZU)
z?L{+K{X~VSHyM?k`oNrCMrH<qeSb>s>a_Z1T>Ql5xPPVHEXE1$iMgrZe65$9lUQ8L
zARyKHM^B?XVoOf0;{~Vd%Fz$s9eq39j*-!TqZ{mzmx7ZYrYf^e0C6T?xUI-?V^_oD
z>4zB^%|-8CP!p9|zPemDMufY+bgJnguo}lZVxp~q=YuqEsIf{ga;Dt4*1Y))SSII=
zI_qUHYsMWFy$|51`NqV|ATaywlskX5if^&)I_VlEet7{igFs)h*Ui|N4V8Vu3Qa2w
z=6s#JZjvf%%g3W{_fPgs*Jk;&z2Wh6L1sobmR}!^zMUS;%&5e&0_5^WW=1K2Ti4<>
zZ98~fR%Ob4y*U4+<K%^tH5p%k5-O<7DagoVyo2CKPF^>~4pC%0$TpJ??V2Lm5xm-&
aXTp=V{uhb|pMmT(JhhgQg^__l)c^p_tHIg;

delta 4928
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

diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock
index 6cb3367eb4c3d56d4fffd97fc1ec060b4e89b8c5..90be8bbe46872fb2c2dfaa16c2b1debc3585b0e8 100644
GIT binary patch
literal 17
VcmZP$`TwJ1B6D^Y0~jzi0{}Qj1jGOU

literal 17
UcmZP$`TwJ1B6D^Y0|a~o064P+F#rGn

diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin
index 8da2ea643297ea24ebe448d0705eed4fb283bf80..3777e2fb75188a80f5ef02b487efb22b1d596b5c 100644
GIT binary patch
delta 3182
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

delta 3613
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
QSW|y%WkVy0`!&dS05mS91poj5

diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock
index 7fac77118eba4edc0e99d909d5e8cd8dcea24a08..7b333d1b1b3ec72096d6acd1269ec9a0c55f1011 100644
GIT binary patch
literal 17
VcmZSXX1VC#`|)8R0~qk~001(+1Wf<{

literal 17
VcmZSXX1VC#`|)8R0~m0a0su1I1aSZW

diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin
index ab3e0a4676e0148a19681f3824f31fdc9e02de08..aa0feb0429a70db3fd0c1501c8b605824d233c01 100644
GIT binary patch
delta 4103
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
J;wZRy1^~nSe6s)m

delta 2325
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

diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 9c9ba6e9ea216ef5653e61d1501e8703235f0cef..c77e84520038f8c47d14db5cb911ea630ec7b10d 100644
GIT binary patch
literal 17
VcmZR!o;x%Ck-On^1~6c@1pqI31O)&9

literal 17
VcmZR!o;x%Ck-On^1~6b!1^_Qz1L^<(

diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index 88df6d9bca121586e9b1df41d8989494bb6915f7..66b61460c12daabc04660b12d21a0c7ec81e4a0b 100644
GIT binary patch
delta 471
zcmX>&lkw*a#tkMCj5d=^B@6_*E=m5ovv)=!0~q)iPVSXZ5STvcZn%Pm<V~;`gOB{=
zy%Gun^RF-~yf2;J4-xdvo_tk8VX~@Z!sNM<5(3-jmDW{UZ&8Ly9-VwtQbA)+anOPl
z2ahB}1bx!~L%~6IkH>0`Gv7kQy<bkgE2%J9RH|a~QYjCPH<1_AtEA)qO;(k55cqVw
zQ`DQsZYNab!pX7H3X`WwOH4j0EfK+6$b7~pY&#1?(kB#Z`hWgn>jY<q%c>A@Z+Dou
zgv`zR(TAG8L&f`H;xfBepL)@AMIIvV<2;#FMq#q8jD&#dE3@G3CN9??65h3wQ)Mg!
zOmEm9_LY0{2P*h`@>H3h{0@dobP_uwp<<DfTV)j{@0FF9%qk}lQgQQzn(q%oHmIa2
z%-YKR!PoYcH7taRZ-$9iJ=WdzrQne}MBIlLCJv(+7+5!MRQw^n(I7);v!h2e^W+a6
FcL7A}zB2#-

delta 541
zcmex4gYn=@#tkMCj1H4cB@8tBe@ydH+r-nv00utY|Dj;2WshasE%#$!VFsVd$)yqs
z0<#|&{5_bvG6Ev#Z8~|Wgu>*z5)vAV6_0EWE!TVvk?>g$HRS*DnJX*3IPTtph<is)
zek+k7uts$2?6b^|mqG>mC;Lh&2yBxtZron)r~(o637uRksWADhq=dkc8wP3#%TBOD
zB)r`x-<50-xD&9uVyV|*h!}%U`s7fl0E?G;8J{Y(o^OPRdcTA@;?+Ns`nC{WeyI3D
znD~bvk*!(MJ4z<6m2#NODlH-KThW)>`(e=^h(e#alSQQ!1UPrDI5k<c=LJO2yLPg!
zw1S4ntZ6OH&*a}j1buj6M#^}~F7fR9Q4bY2oV-+8K|pqk)SJ6?G9Ms<-kT@yl~xeY
ztvIo8;tl--h@g-2<hRlmlWk=_PIi+O7sv{e<dXfzJ_jl(KRHxZL8CAvblTJnJ1rrC
z-q|oa3t#TOxZ}w@Zm9Ut$+@x$Ds|WHv}MXz<v|61!xY141_n04jfy|SHyUsVZFcmC
LX5K8|rOF5ZI6BcX

diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
index e2a27b4fa137df29ad7ad2b30eb568a77facaacd..349a7660edc0174109e0bb6d9f10eadb1c99c724 100644
GIT binary patch
literal 8
PcmZQzVC?=oM`#-W31<TC

literal 8
PcmZQzVC?>B>GB@{2-^b!

diff --git a/build/classes/java/main/model/Board.class b/build/classes/java/main/model/Board.class
index a78d2b182c87683650b0972590097ab4611719be..274aa8a242bf589f0f4a711ca9a0ca7df89faab3 100644
GIT binary patch
delta 192
zcmX@he2<0e)W2Q(7#J8F7$i4xNio(7rKgs-=A`DP=9L8G7iX4a=I1doh-zs1WF?j*
z>X(*e=IDDQ7H9Y-7FaVf1Y#4n@d2xX>9$7F=~z^hSm~2lTw>#so1c=JqwkcTSd;>_
v&f3n}&U&&EV*n$^<YGn-B^E{oVFnQfMh12U1_mYuQ3fU`ON>DrEFu8_^@=tp

delta 48
zcmcb|a+aCv)W2Q(7#J8F7{oSmNij}d%IL?)KKToyhY$l313Lo)0~3QVg9w-w1prp7
B3F80&

diff --git a/build/classes/java/main/model/BoardElement.class b/build/classes/java/main/model/BoardElement.class
index b7da37d481527392ebf91688895cc27b0ede2413..f3817965c6f2c20d18493e32d39eaa14f4eeb86e 100644
GIT binary patch
delta 329
zcmeyv*u}zi>ff$?3=9ko41yE6me#YC7NjJWq%tyiYxv~mr=;fSyC>$RI^`!8rC9rv
zmSpDW2jmxLmSpDVS^H!qmL=+g#XJ&=Gkg;ZkcAwJiV`b*GK)*BHNzMgID<3O^Abx+
zi&7aGX5cZo9+%NJxGjg<WCL|E*tM=Xsky0nCDwM<c37Q-ZlE35ofFq<8MCl3GO#kR
nF)*+&GO#mnfN4$!E-=l_z{9}Ez{|kEz{J4Ez{tQ4W(fcQ#yDf*

delta 58
zcmeBT`NPO{>ff$?3=9ko47?M$mQG&FsHM!z!pOkNz{bG9!pOkRzyYQ?8Mqi27#JD2
K85kIt7<d4N1_(+3

diff --git a/build/classes/java/main/model/Builder/GameManage.class b/build/classes/java/main/model/Builder/GameManage.class
index 6d31614caa77c363eb0fe85b398c1f6367eabe9c..fd32c7f35a06865312c88379a1bd57794de41293 100644
GIT binary patch
delta 218
zcmaFD^@M9fA0wmGWJV^@$qyJgMRj=?^cd6_8Ccwd93#0Hv=}tl84M@?V>IwH=3y`a
z$*}ncIr_P~axoZy<jffv#B=jgQgihElZs0clXFt_ee+B6N)j{kI2n`}EO{8LK$=*c
zg8ak%xERbpdTbdP6hIcrxMdclx@D$kl%y7c6x;JKIDizhIQfLSZZ2dx&d4XQh(TmG
zgI44w2A%B;`jZn`gvAUZH!&D(XD|(KVPstX{}r>1wAK~|$;tUFQjENlyI2w!^(Mb&
GsRRIA)-v}1

delta 204
zcmaFD^@M9fALC?uCRGVt9tJ%IHAV&&C!bJPE(R?I4R!`YMh2<L4osqo&N=y|DVz*S
z48}YRCSX<WL5`7J3<e-o=8O!QAXSrZF-nMA@-SF|6tMXRIr_P~axs{Jl-N$@WRl~v
z=V5RF$+0>G`G@;$E@V2+XwJKcL1Z_BR^%oIo$U<z;Vq1e%m2S(wvpD_!XN;aGKk#7
fV6>gV6h%sSaz2aH<UAI($^9(RjQW#bvs3~A@bfMD

diff --git a/build/classes/java/main/model/EmptyElement.class b/build/classes/java/main/model/EmptyElement.class
index 5069ea14ef0a85701717a0b7537a043f6dcdd4af..44f98af2e977e4cd4c5b4d4e026c4b3fcddd20e8 100644
GIT binary patch
delta 723
zcmX@Y`hkn<)W2Q(7#J8F81y!B^)lA8l@_EVmZUN=cx(9N=BK3Q=({K8raI*(7NuDG
zl$K=X=m+E%XO?8<=UMw?C6*=XgT*`&i!*!^3y_5zi;5B}eKLzntTn?J8938nrZ6%H
zVi?TGz)=7(wLXuLfgjBtMh2n0)N<FH)ZEm(5}56b48mCKXJimcttiRNOE1kV&Oj&?
zMN*1z7bAn1PkwS@PFP}5W@1uKYDi^4YJCWZ#mL}~qyy?X8#HGjseqel1N9m>yr3?&
zwzIagW@J#qt{xnGFqc}})mt+%a0X|l=Ovbu7Ns&W%pfBcC~>GJ)+j_b(au^kZ1Pk_
zJx12aM;L$C%P}x92r@7*<TEfZure?(Fm7aEU|?ntVqjokV_;-pV31`HW?*12fk-ll
zFo-gM03(Aug92EdkwK9`iGc~El|h+7g@GB&Qe{wMU|~>aU|<k~%W1&nG#OYJv=|r|
Pm>9UV85kLKz)W2LotM$4

delta 35
rcmeysb%d4c)W2Q(7#J8F800r{^)gQ0$E?H1GWj+0Z&n5dCI&eG=QRr4

diff --git a/build/classes/java/main/model/ExtinguishFire/ExtinguishFire.class b/build/classes/java/main/model/ExtinguishFire/ExtinguishFire.class
index a4d622e74ad0dac8a1e1ee24f055fadd19df68df..567d4a02a156b9d882a255fecd3f2f6fec4a11ed 100644
GIT binary patch
delta 34
qcmZ3*Jcp6%)W2Q(7#J8F7&s?#MNUp+)Z=DgU}RutU|?Wk-~a%x8wU~q

literal 426
zcmX^0Z`VEs1_lQPUUmj1Mh4~F{FKxjeb<VT%)Io{%;F5U%%W5@E;|DYBZELzVp*bo
zPGVlVzJF3yYH|rX0~;fQ5JbCEeqvFIYffrzYF-H=16yf9N@7VWBZIew4@BNQF*g;g
z#@eT}Br``pAip@XBr`wH+6QbZSj;1_IKwxw09nYfs3@`0C$qT3S~HB1fipNWJuk7O
zv?!I4VFno{+u*hvZjlYt!C=QiJ!EZXZHLuW=my$>oyirPUs{x$>Xw<4%E%y$8nAjG
q@3Jv6FfuSRFfy<*FfcH(Ffy<+a4;}3a56A3Ffnj3Ffwq1Sv&w|a)i|Y

diff --git a/build/classes/java/main/model/ExtinguishFire/FireFighter.class b/build/classes/java/main/model/ExtinguishFire/FireFighter.class
index 8b3434fcf26e4a650c3fe23173ef74be5ad47abd..c0e51cda8547a4be38648418a2a9a1e46ff831f1 100644
GIT binary patch
delta 3101
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
Bo%;X)

delta 3340
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
GgCqd#4&n&_

diff --git a/build/classes/java/main/model/Flammable/Fire.class b/build/classes/java/main/model/Flammable/Fire.class
index 84d78d98efd0addb56edbf98e7743f38a0792525..920c2cf21bcd5dc894beef5a8c621fe2b112a4dc 100644
GIT binary patch
delta 2281
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
C)6pdW

delta 2158
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
O#q)FqMur(+)=U8Qf6;~j

diff --git a/build/classes/java/main/model/Flammable/Flammable.class b/build/classes/java/main/model/Flammable/Flammable.class
index bf120cd5de3e083cfef4bb7079bfbbbd2f05fb97..91181ac215dd52d55daf7d5430d885160fda1cd7 100644
GIT binary patch
delta 34
qcmbQu+{?&y>ff$?3=9ko44f0W{3nMqYH~9$Ffy<+FfcGNZ~y?Qyaw9<

literal 411
zcmX^0Z`VEs1_lQPUUmj1Mh3~;{FKxjeYc#%+}y;ZoKyshoq>gsK_Dx!EKxrvF)v-;
zKPf9UxrCj8jgdhJqRA;gu_(ngCp9-UuY{3-t+XH|u_Tp|!CS)zBJZA<n+jHA?NeHk
znWG<&Uz}NznV)Cv12z>b=8;&O;hR{1EaX^JlvwGLSzKbR8OF%K8JwA(msnC-l*-63
zgA9{xaN7;H$Oh_Quw$VfvbM9f!|Ez@1MR@h<O<F&ElN&x%gjk-WZ;7bryj_sY>W(y
l49pCS46F<c42&#{4D1XX42%q%3=9lR3|tJ14BTKA4*-4Kem?*J

diff --git a/build/classes/java/main/model/GameBoard.class b/build/classes/java/main/model/GameBoard.class
index 8942affab3e8e68908afa81fa9853f48e4eb1d1f..6c8872b744c5e2a38f940a8d23806e30f1ac6e64 100644
GIT binary patch
delta 42
ycmZ2)u-;(923|&~%^P`>xunGzm>51YFfcGNd|~*?z`(%8z{n8B@QvXI8z%q&eF~KT

delta 42
ycmZ2)u-;(923|(V%^P`>xuj(nm>51YFfcGNd|~*?z`(%8z{n8B@QvXI8z%q&;tH7n

diff --git a/build/classes/java/main/model/Visitor/CrossMountain.class b/build/classes/java/main/model/Visitor/CrossMountain.class
index 69f63f7cd3d38ef2cee410a9416eee60dd7cfd4f..7b4862c1b9895e8a2c0cdf166c848cd182415ef9 100644
GIT binary patch
delta 23
fcmdnaxt(*vX6DKH%z~4TFqco>%q%$Bhb0>TY`O?`

delta 23
fcmdnaxt(*vX6DJ(EP|7dFqcoxXBM37!;%dEXW$3_

diff --git a/build/classes/java/main/model/Visitor/CrossRoad.class b/build/classes/java/main/model/Visitor/CrossRoad.class
index 6846553e8ac3d3e4fee6d99e85266f45c4b7a798..033a517b18b7e6f6b664e07fe3378f4c73fd0256 100644
GIT binary patch
delta 31
ecmZ3@xteoBGV^44X2HoN%*J4P2bBK9ydD6VnF-JU

delta 31
ecmZ3@xteoBGV|nO7Qx9S%*J4P2bBK9ydD6khYHUC

diff --git a/build/classes/java/main/module-info.class b/build/classes/java/main/module-info.class
index 7a769b70875d147512dd0dc3f725d1c113981548..228b8be064ecf35c69bb788937ce7ff8ab50174e 100644
GIT binary patch
delta 17
Ycmcb}beU;F8as!Pfu4b$(ZuX$05SmuumAu6

delta 15
Wcmcc2bdhO78Y`QTfu6y{+-CqOT?I}6

diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index b581eed029bcd9d3ac0e02103362957d29c9dab3..37b3b8ba1f9900d28aabf3f9453e8536c2a212b8 100644
GIT binary patch
delta 2084
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

delta 2086
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

diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java
index 469590d..a2ebb06 100644
--- a/src/main/java/model/Board.java
+++ b/src/main/java/model/Board.java
@@ -2,6 +2,8 @@ package model;
 
 import util.Position;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -61,5 +63,6 @@ public interface Board<S> {
    * @return The current step number or generation.
    */
   int stepNumber();
+  HashMap<Position, ArrayList<BoardElement>> getElementPosition();
 }
 
diff --git a/src/main/java/model/Builder/GameManage.java b/src/main/java/model/Builder/GameManage.java
index c75cc37..c544874 100644
--- a/src/main/java/model/Builder/GameManage.java
+++ b/src/main/java/model/Builder/GameManage.java
@@ -31,9 +31,6 @@ public class GameManage {
         for(int i=0;i<fires;i++) {
             new Fire(Color.RED);
         }
-        for(int i=0;i<firefighters;i++) {
-            new FireFighter(Color.BLUE);
-        }
         for(int i=0;i<clouds;i++) {
             new Cloud(Color.GRAY);
         }
@@ -43,7 +40,9 @@ public class GameManage {
         for(int i=0;i<mountains;i++) {
             new Mountain(Color.BROWN);
         }
-        // TODO: 15/11/2023  la suite .... aussi l'initialisation va changer dans fire et firefighter
+        for(int i=0;i<firefighters;i++) {
+            new FireFighter(Color.BLUE);
+        }
     }
 
 }
diff --git a/src/main/java/model/ExtinguishFire/Cloud.java b/src/main/java/model/ExtinguishFire/Cloud.java
index e8b51c0..e55461c 100644
--- a/src/main/java/model/ExtinguishFire/Cloud.java
+++ b/src/main/java/model/ExtinguishFire/Cloud.java
@@ -65,10 +65,5 @@ public class Cloud implements ExtinguishFire{
             newElementPosition.put(newCloudPosition,boardElements);
         }
         extinguishPosition.add(newCloudPosition);
-        /*List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream()
-                .filter(firePositions::contains).toList();
-        for(Position firePosition : neighborFirePositions) {
-            extinguishPosition.add(firePosition);
-        }*/
     }
 }
diff --git a/src/main/java/model/ExtinguishFire/FireFighter.java b/src/main/java/model/ExtinguishFire/FireFighter.java
index 4dd87bd..ba92948 100644
--- a/src/main/java/model/ExtinguishFire/FireFighter.java
+++ b/src/main/java/model/ExtinguishFire/FireFighter.java
@@ -4,6 +4,7 @@ import javafx.scene.paint.Color;
 import model.BoardElement;
 import model.GameBoard;
 import model.Visitor.CrossMountain;
+import model.Visitor.CrossRoad;
 import model.Visitor.FireFinder;
 import model.Visitor.Visitor;
 import util.Position;
@@ -12,14 +13,14 @@ import java.util.*;
 
 import static model.GameBoard.elementPosition;
 
+
 public class FireFighter implements ExtinguishFire {
     private final Color color;
 
     public FireFighter(Color color) {
         this.color = color;
-        initialize();
+        initialize(); // est une bonne idée ?
     }
-
     @Override
     public Color getColor() {
         return color;
@@ -32,131 +33,81 @@ public class FireFighter implements ExtinguishFire {
 
     @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;
+        while(!canInitialise(position)){
+            position = GameBoard.randomPosition();
+        }
+        addElementToElementPosition(elementPosition,position);
+    }
+
+    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;
                 }
-                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);
             }
-
         }
-        ArrayList<BoardElement> boardElements = new ArrayList<>();
-        boardElements.add(this);
-        elementPosition.put(position, boardElements);
+        return true;
     }
 
     @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 = firePosition();
+        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);
+                    return;
                 }
             }
+            moveAndExtinguish(newElementPosition,position,extinguishPosition,firePositions,gameBoard);
         }
-        Position newFirefighterPosition = gameBoard.neighborClosestToFire(position);
-        if (elementPosition.containsKey(newFirefighterPosition)) {
-            boolean canMove = true;
+    }
+    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())) {
-                    canMove = false;
-                    break;
+                    return false;
                 }
             }
-            if (canMove) {
-                if (newElementPosition.containsKey(newFirefighterPosition)) {
-                    newElementPosition.get(newFirefighterPosition).add(this);
-                } else {
-                    ArrayList<BoardElement> boardElements = new ArrayList<>();
-                    boardElements.add(this);
-                    newElementPosition.put(newFirefighterPosition, boardElements);
-                }
-                extinguishPosition.add(newFirefighterPosition);
-                List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream()
-                        .filter(firePositions::contains).toList();
-                for (Position firePosition : neighborFirePositions) {
-                    extinguishPosition.add(firePosition);
-                }
+        }
+        return true;
+    }
 
-            } else {
-                List<Position> neighbors = gameBoard.neighbors(position);
-                for (Position position1 : neighbors) {
-                    canMove = true;
-                    if (!elementPosition.containsKey(position1)){
-                        ArrayList<BoardElement> boardElements = new ArrayList<>();
-                        boardElements.add(this);
-                        newElementPosition.put(position, boardElements);
-                        extinguishPosition.add(position1);
-                        List<Position> neighborFirePositions = gameBoard.neighbors(position1).stream()
-                                .filter(firePositions::contains).toList();
-                        for (Position firePosition : neighborFirePositions) {
-                            extinguishPosition.add(firePosition);
-                        }
-                        break;
-                    }
-                    for (BoardElement boardElement : elementPosition.get(position1)) {
-                        if (boardElement.accept(new CrossMountain())) {
-                            canMove = false;
-                            break;
-                        }
-                    }
-                    if (canMove) {
-                        newFirefighterPosition = position1;
-                        if (newElementPosition.containsKey(newFirefighterPosition)) {
-                            newElementPosition.get(newFirefighterPosition).add(this);
-                        } else {
-                            ArrayList<BoardElement> boardElements = new ArrayList<>();
-                            boardElements.add(this);
-                            newElementPosition.put(newFirefighterPosition, boardElements);
-                        }
-                        extinguishPosition.add(newFirefighterPosition);
-                        List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream()
-                                .filter(firePositions::contains).toList();
-                        for (Position firePosition : neighborFirePositions) {
-                            extinguishPosition.add(firePosition);
-                        }
-                        break;
-                    }
-                }
-                if (!canMove) {
-                    if (newElementPosition.containsKey(position)) {
-                        newElementPosition.get(position).add(this);
-                    } else {
-                        ArrayList<BoardElement> boardElements = new ArrayList<>();
-                        boardElements.add(this);
-                        newElementPosition.put(position, boardElements);
-                    }
+    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());
                 }
-
             }
-
-        }
-        else{
-            ArrayList<BoardElement> boardElements = new ArrayList<>();
-            boardElements.add(this);
-            newElementPosition.put(position, boardElements);
         }
+        return firePositions;
     }
 }
 
diff --git a/src/main/java/model/Flammable/Fire.java b/src/main/java/model/Flammable/Fire.java
index f294189..6b3a2fd 100644
--- a/src/main/java/model/Flammable/Fire.java
+++ b/src/main/java/model/Flammable/Fire.java
@@ -11,6 +11,8 @@ import util.Position;
 
 import java.util.*;
 
+import static model.GameBoard.elementPosition;
+
 public class Fire implements Flammable{
 
     private final Color color;
@@ -19,97 +21,81 @@ public class Fire implements Flammable{
         this.color = color;
         initialize();
     }
-
     @Override
     public Color getColor() {
         return this.color;
     }
-
     @Override
     public Boolean accept(Visitor visitor){
         return visitor.visit(this);
     }
-
     @Override
     public void initialize() {
-        FireFinder fireFinder=new FireFinder();
-        CrossMountain crossMountain = new CrossMountain();
+
         Position position = GameBoard.randomPosition();
-        boolean canInitialise;
-        if(GameBoard.elementPosition.containsKey(position)) {
-            for (;;) {
-                canInitialise=true;
-                for (BoardElement element : GameBoard.elementPosition.get(position)) {
-                    if (element.accept(fireFinder) || element.accept(crossMountain)) {
-                        canInitialise=false;
-                        break;
-                    }
-                }
-                if(canInitialise){
-                    break;
+
+        while(!canInitialise(position)){
+            position = GameBoard.randomPosition();
+        }
+        addElementToElementPosition(elementPosition,position);
+    }
+
+    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())|| element.accept(new CrossRoad())) {
+                    return false;
                 }
-                position = GameBoard.randomPosition();
-                if(!GameBoard.elementPosition.containsKey(position))break;
-            }
-            if(GameBoard.elementPosition.containsKey(position))
-                GameBoard.elementPosition.get(position).add(this);
-            else{
-                ArrayList<BoardElement> boardElements = new ArrayList<>();
-                boardElements.add(this);
-                GameBoard.elementPosition.put(position,boardElements);
             }
         }
-        ArrayList<BoardElement> boardElements = new ArrayList<>();
-        boardElements.add(this);
-        GameBoard.elementPosition.put(position,boardElements);
+        return true;
     }
 
     @Override
     public void update(GameBoard gameBoard , Position position,HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) {
-        if(extinguishPosition.contains(position)){
-            return ;
+        if(extinguishPosition.contains(position)) {
+            return;
         }
-        if (gameBoard.stepNumber() % 2 == 0) {
-            List<Position> newPositions = new ArrayList<>();
-            newPositions.addAll(gameBoard.neighbors(position));
-            if(newElementPosition.containsKey(position))
-                newElementPosition.get(position).add(this);
-            else {
-                newElementPosition.put(position,(new ArrayList<>()));
-                newElementPosition.get(position).add(this);
+        if(canMove(position,newElementPosition))
+            addElementToElementPosition(newElementPosition,position);
+        if (gameBoard.stepNumber() % 2 == 0 ) {
+            List<Position> positionsNeighbours = new ArrayList<>(gameBoard.neighbors(position));
+            for(Position positionNeighbour : positionsNeighbours){
+                if(!extinguishPosition.contains(positionNeighbour)&& canMove(positionNeighbour,newElementPosition)){
+                    addElementToElementPosition(newElementPosition,positionNeighbour);
+                }
             }
-            for(Position newPosition : newPositions){
-                if(extinguishPosition.contains(newPosition))
-                    continue;
-                if(GameBoard.elementPosition.containsKey(newPosition)) {
-                    for(BoardElement boardElement : GameBoard.elementPosition.get(newPosition)){
-                        if(boardElement.accept(new FireFinder()) || boardElement.accept(new CrossRoad()) || boardElement.accept(new CrossMountain())){
-                            break;
-                        }
-                        else if(!boardElement.accept( new FireFinder())&& !boardElement.accept(new CrossRoad()) && !boardElement.accept(new CrossMountain())){
-                            newElementPosition.get(newPosition).add(this);
-                        }
-                    }
+        }
+    }
+    private void addElementToElementPosition(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newFirePosition) {
+        if (newElementPosition.containsKey(newFirePosition) ) {
+                newElementPosition.get(newFirePosition).add(this);
 
+        } else {
+            ArrayList<BoardElement> boardElements = new ArrayList<>();
+            boardElements.add(this);
+            newElementPosition.put(newFirePosition, boardElements);
+        }
+    }
+    private boolean canMove(Position newFirePosition,HashMap<Position, ArrayList<BoardElement>> newElementPosition) {
+        if(elementPosition.containsKey(newFirePosition)){
+            for (BoardElement boardElement : elementPosition.get(newFirePosition)) {
+                if (boardElement.accept(new CrossMountain())||boardElement.accept(new CrossRoad())) {
+                    return false;
                 }
-                else{
-                    ArrayList<BoardElement> boardElements = new ArrayList<>();
-                    boardElements.add(this);
-                    newElementPosition.put(newPosition,boardElements);
-                }
-
             }
         }
-        else{
-            if(newElementPosition.containsKey(position))
-                newElementPosition.get(position).add(this);
-            else {
-                newElementPosition.put(position,(new ArrayList<>()));
-                newElementPosition.get(position).add(this);
+        if(newElementPosition.containsKey(newFirePosition)){
+            for (BoardElement boardElement : newElementPosition.get(newFirePosition)) {
+                if (boardElement.accept(new FireFinder())) {
+                    return false;
+                }
             }
         }
-
+        return true;
     }
+
+
 }
 
 
diff --git a/src/main/java/model/GameBoard.java b/src/main/java/model/GameBoard.java
index 9a4d9e1..01565fa 100644
--- a/src/main/java/model/GameBoard.java
+++ b/src/main/java/model/GameBoard.java
@@ -20,12 +20,12 @@ public class GameBoard implements Board{
 
     private int step = 0;
     static Random randomGenerator = new Random();
+    public static HashMap<Position, ArrayList<BoardElement>> elementPosition=new HashMap<>();
 
     public HashMap<Position, ArrayList<BoardElement>> getElementPosition() {
         return elementPosition;
     }
 
-    public static HashMap<Position, ArrayList<BoardElement>> elementPosition=new HashMap<>();
 
     public GameBoard(int columnCount,int rowCount,int initialFireCount, int initialFirefighterCount,int initialCloudCount,int initialMotorizedFireFighterCount,int initialMountainCount) {
         this.columnCount = columnCount;
diff --git a/src/main/java/model/Visitor/CrossMountain.java b/src/main/java/model/Visitor/CrossMountain.java
index 79fdb61..6b0da04 100644
--- a/src/main/java/model/Visitor/CrossMountain.java
+++ b/src/main/java/model/Visitor/CrossMountain.java
@@ -18,7 +18,7 @@ public class CrossMountain implements Visitor {
         return false;
     }
     @Override
-    public boolean visit(Cloud cloud) {return true;}
+    public boolean visit(Cloud cloud) {return false;}
     @Override
     public boolean visit(MotorizedFireFighter motorizedFireFighter) {
         return false;
@@ -26,7 +26,7 @@ public class CrossMountain implements Visitor {
 
     @Override
     public boolean visit(Mountain mountain) {
-        return false;
+        return true;
     }
 
     @Override
diff --git a/src/main/java/model/Visitor/CrossRoad.java b/src/main/java/model/Visitor/CrossRoad.java
index b886335..40f1eb8 100644
--- a/src/main/java/model/Visitor/CrossRoad.java
+++ b/src/main/java/model/Visitor/CrossRoad.java
@@ -15,15 +15,15 @@ public class CrossRoad implements Visitor {
 
     @Override
     public boolean visit(FireFighter fireFighter) {
-        return true;
+        return false;
     }
 
     @Override
-    public boolean visit(Cloud cloud) {return true;}
+    public boolean visit(Cloud cloud) {return false;}
 
     @Override
     public boolean visit(MotorizedFireFighter motorizedFireFighter) {
-        return true;
+        return false;
     }
 
 
-- 
GitLab