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