From 7c1439de7065658c389c11dd0cab3e811707e293 Mon Sep 17 00:00:00 2001 From: Sarah CHERCHEM <ls_cherchem@esi.dz> Date: Thu, 28 Nov 2024 21:24:21 +0100 Subject: [PATCH] Display Motorized in the grid --- .../executionHistory/executionHistory.bin | Bin 28916 -> 28916 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.10.2/fileHashes/fileHashes.bin | Bin 28397 -> 28397 bytes .gradle/8.10.2/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.10.2/fileHashes/resourceHashesCache.bin | Bin 22271 -> 22509 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../main/model/BoardFireFighterBehavior.class | Bin 8021 -> 8966 bytes .../java/main/model/FirefighterBoard.class | Bin 6597 -> 6630 bytes .../compileJava/previous-compilation-data.bin | Bin 21899 -> 21899 bytes .../java/model/BoardFireFighterBehavior.java | 68 +++++++++++------- src/main/java/model/MotorizedFireFighter.java | 19 +++-- 11 files changed, 58 insertions(+), 29 deletions(-) diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index 4b2b232d6014176a132436daa367c116d399b3e6..e93c865cf1b72472cfa682758e98c3bb522c8cad 100644 GIT binary patch delta 367 zcmezJknzhy#tr@+c4fsGRmIsRmAPf9MJ0J96}d&p1tldVX=Nq?tV?A?-v!OSE~dDC z&68=@Oph~R2yO25kQLw$e(CdN=~T9*;ph1_7P4I2yfdPYMPf<dInRYttFOqVWu_^% zgtRiw$<0qm&C#E15G%U5B=$R_K+68ZRi=_v&*t8XTi@|BKYDX@yaS8CPdfvLK0TpV z)jC%WJ-yBJW%KD|Sw`k5TaQeBo$^N_RoU}rQ1-*Sufweajk1{9e{Mapc)L-X+vfkN zJ&fX^?%m7&#_pS)^ZmNr;woL?O<>t)lNY7;a(#QYa`ASfhdhk4CkMofPWH=Smv|^A z(_gf3%fhd*LLtmS1{@#3O8#?C&do3r*cPgjf9m_8&RFNzFU%z=w<d4SP-Sk}c4YJI z3@1i`PTqpOJ`ZHo|30)zl=r@LY_o3GdPd=!tgSb@cj~@rICdmG#c=uRY1@u$exJ?C F3IOLptkeJi delta 367 zcmezJknzhy#tr@+c6r(9+2-bz>FK7arKXwLrG<I9=ElXwxp|cWEba4iWmo0chRt*p z^6Pl@dIAfE(B@tbSpoiJH=Wf9&34aC7S@aWnB%v3XG9;1#56|Vr~BrAW=fsQ<|Fg> z_;JQLx%nxnIr@_gVnsKX#C~TKI2PZ1KGT|;dmr<@j*_Jextpuw9asbwu1pr_5&H8X zgmYutnqSIOH=j<HWn_MIp?&h}ls^&=RG8(r^@)B~c_Mr7RKqmA!x!5ZZ#TMXxA}i+ z52N`0_#+|a9D7&0O@1G{fcLw=La^-7$&1o^xz2&v4|y18PY#F|o$QyvF2QLLnXh$C zb-GnzePmUMM#2fOlEYk+b2H2YR@5JOvv1qvmu**Ho86PoJ3o1IhAQ*xi|w0lXE-qm zR38mqc#V7CAtsl%<#WCTP2a4WwVqM<n*&SY{mEbFt*sB&+{)6szWq}B=J(mGtN`oV Bs1N`E diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock index 6908cfd0b5aae04c4a2a1e855483ed99945119f4..31a3a0a39e4212e4bc2c34425978194b02bdcfe2 100644 GIT binary patch literal 17 UcmZQRe96UU<&lZk7$6`L06sSbRsaA1 literal 17 UcmZQRe96UU<&lZk7$Cp}06roGK>z>% diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin index d495e7a842fe87fb2c87a0d2c6c8658c0087c62d..f45170b79721d972e35a42e3798d8da1c3dfb235 100644 GIT binary patch delta 312 zcmaERm+|dg#tqyl3VpwxZg#R!%e%Yn*d(sYFaI$xFitKhlsLoy21-(!wNn-`DyRsa z6Lx;4;=5U6(+%URkHW#Kl5-A%6)^}bocuPmOySHCw`r<P!4~qxCfD^=Fi!$2$|}@_ zC}KUfxj9XmiMdc}%H)L^j}%gsJ%0veKfL=o+&a)Gi>V!~x=`vTM71*8=Ea$d7!^X@ zyO;fq-8Vbu`*pj;Rl34ZRhuBHB%e)A%`Q`TC@0fjv~bJ9udzZQ%s~bmU`1KQg%Cxo z|0n;>j$|&BW|_P?PHJ;ujt-;3P1e?%-8*&PG#opUo?^IsHCRWXv=~H3X!m5rJoU*> Sa)0q>6_-K8*b*5S81w)@2x}q$ delta 312 zcmaERm+|dg#tqyl3Z-(^)2o>GOw$XnnS3J5a~1;w<K&VArX>tuAa`oBcFH0~g<Dd& z@vGWg+$YXp<oA_18U|LC__PkJh(W+$^4ruhg||1KeamTlD?a;{(#j1xZ8gA(qT&T0 zidf!kZcdYCVorRKG<jjhBZUVl%<|j%L_e!Mk-c}SVVWLTb>fS|5Y_Ubn-^y;VpP~4 ze<Z}5WAAFW$?szq@O~G7s#*w9C3$pmYId0dr$uDG)-~1XR*ChIRV5k;P(>#oiddZ| z|IUtNPJHot^6EIL&4oESj0)czSQ76~{yJ}MeYoaUmfrOc9WU7-IzqcAE9R+Bev<o( QKk>ymh!|TU0|SE|04+^z3;+NC diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock index 5704671eade6aaaf9fd222d4053099773d436456..d5807fc55d5cdf8cc4db7c81c513ad88e7990446 100644 GIT binary patch literal 17 VcmZR+_F~glt9wx?3}C=i3IIhc1-1YH literal 17 VcmZR+_F~glt9wx?3}C>d3IIgh1!e#M diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin index 24099587cd19bf4d3f11064e66ce3b445421e1b1..361ed8b74ba2225b1a38375ee4383f86dda21659 100644 GIT binary patch delta 421 zcmeyrmhtU+#tkMCjAffmB^nq7=1Fk3&iuA$DgzjVJ8xbqxqwk%PpbEBd;W4~upmSD z%E_+M76OMJ>7QKP@!1t381{d2sq_P80R^4^k8ZDcTnrHnSKRC?pTH!L_;t?8dGD7? zLPb+2FIBV<$ULzi_*>I*52#@K<g1F7`~|%Y6?X%-K*df^W>s3m#I3kd@rU?EgC9Jb z9X<B()f+P~Fo28_WME(r6j%~?&U4|^>ML?-nQ4kGA*~Dy405O{7Ns9$-md93XSR-9 z(C<B4u4Agu7TC=+>3j6O?wtR#E_`_vjHx1J|KTcA$*N~_@5SY>@A#P?jj3c#u3@DE zzw(mUNn9~sY<C^TR54vk<9GMG*K-RuNt)L;7F1!X2!84FW$9G5rQzrKHWsp6ybV$T E018Ta>i_@% delta 63 zcmaF6p7H-$#tkMCjQN{QB^nqvpOu`!IJs8ZVDnMw8_b)x%11CwR#h^XoU3Fwd7IKq VCa%hjia*3R8Z6-5?C7zN4*(`57;yjq diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index ddd37d4352461add0ef41adf87dac87d5223acd6..1fa5114eb746698d290ca8906720c193c02e035f 100644 GIT binary patch literal 17 VcmZSn@!s@&$JN{N3}C>h2mnNV1!w>O literal 17 UcmZSn@!s@&$JN{N3=r@E07Xg$HUIzs diff --git a/build/classes/java/main/model/BoardFireFighterBehavior.class b/build/classes/java/main/model/BoardFireFighterBehavior.class index b6f310615dab7bc112f147807fe635c2d2d217ce..1c537c58c8f903db8eeb2551e27ea4e4cbe95cad 100644 GIT binary patch delta 3615 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 delta 2825 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 diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class index ad5e48bc72e192051c4d9245a26063ab1c8c5aa9..4464d98f7f268fd5b894fa609ae2ce2ed9c8b61e 100644 GIT binary patch delta 419 zcmX?V{LFa62R3GQhKZBcvdeRDGfd`Tn8Gl1@-H?Mw&^?!GZ<!0Heokro6W;8hhgsI zTy|S#E`|x4&$6FoW1Kp9HlG~h)XBT}q-Ce_voSJoF>o_7@-SRwxW>=M$PD7K@Gx9v zn7a8B-*aZ>84NQw-w|qKWCj_ZDpD#uhhZ)QBg1M228I(1ObpBn3=DCT--?I_duShI z=$XkNqP2y=U>ifB&Q1nTCWi3k3<lZ<8T#Pj6>xD0?Sl*xW-<su)Yn4AH!?6VFf*)S zU|>*V;GAqPDrxP(5YFJw5Wx`35Y4cbfq_8*Vkg5ohV={}5XW$m;S>WS$Q=xa7!ETq zG3;kxU|?flkr1EUC91<1H+j3Ljd&7RFArE9D@3n=Bg2%*Tw+p;lP0T*sY%RWxB&H+ z0Rs~Q6UYoL?QIOxCMS#8G0vL2NX$lbDpY|B0}EJzfYxq?36npIwK7hfTq!=2aq47Y OiJ6R3H?NhDU<3eTRb*8F delta 433 zcmaE6eAIZu2R1G)25yFlJPeZ<CQp`PH({H~!!V6u`s5IHW44(*46_(!Pwr*6Rc2?H z%g7*=o1c=Jqwkwvl3$crm73y~S(NIQnVwOSTExXLXY*P1vuuo$C(q`SW1KvB7oW83 zWPUbA1}+9}Mn)cns|?rp*%+BYJQf~?%M6n@f8u-2%sh=@`sO=AZH&wy>r+Kag=aC$ zW?*Dk&A`C0oPmjfnSp`9ZSq?Y@p=R8gA6@08AP<UFc@rODAd`>;K{@gzMMfq`yfN# zOa?)Scm-5^BLf2iGs7AN1_n6>b_NE9Kn8Y(AO;DBU<P@H5C#K=PzG~`Fa}qKNQSix z3=9eodl=R+tY-iLH-?i8rx+MPb~7AeILyGrupeXyD+9B{<kg}&j4_jMh}wuJfc5f# z)v-eK3OF)Mnyf7*#W-QIo0yu!G=>XMzZftuF)%SOFtBN9Z)2D;xkb#5amM7sVm6|a pp$c3WSilMdw01MhnJgmS$~bxQEb*C)lP8-<%w(Lr`J99VBLJ^LWx)Ud diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 2eccc34b5dc9a494b36065cd0145c547e956965b..68d5fbf7aa7887e8aba2f4d66d95ef312b18474f 100644 GIT binary patch delta 89 zcmeBP&Dgz~al?H^fmCJBpF!CV@4gPV4m8SQYM=a`u}L7*y?fc;*nP8ezF)UnT%{{K vxsgdv;GvvMf6>A%3%|w+g)j#haBSYs6vf2EWHwobRfCzu#cs13t7`xN!4D!{ delta 89 zcmeBP&Dgz~al?H^fd?wg^4t1EKdU^Ey?3f%n%?C1j7<Xj<Bx=xbL?I1Hu-(*0^aWe vlN*`z1UM}s^R=$2PPa;|kE|-uNZ7oeDT;}i+01UTG^+*^v&&{TR@VRkjZz_C diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/BoardFireFighterBehavior.java index 9c5c2ce..d5195ec 100644 --- a/src/main/java/model/BoardFireFighterBehavior.java +++ b/src/main/java/model/BoardFireFighterBehavior.java @@ -94,53 +94,71 @@ public class BoardFireFighterBehavior implements BoardBehavior{ } public List<Position> updateMotorized() { List<Position> modifiedPositions = new ArrayList<>(); - List<Position> newMotorizedPositions = new ArrayList<>(); + List<Position> newPositions = new ArrayList<>(); + + for (Position currentPosition : motorizedFighters) { + // Vérification de validité de la position actuelle + if (!neighbors.containsKey(currentPosition)) { + System.err.println("Position actuelle invalide : " + currentPosition); + newPositions.add(currentPosition); + continue; + } + + // Étape 1 : Calcul du premier déplacement + Position firstStep = targetStrategy.neighborClosestToTarget(currentPosition, firePositions, neighbors); + if (firstStep == null || !neighbors.containsKey(firstStep)) { + // Aucun déplacement possible, rester sur place + System.out.println("Pas de première étape possible pour : " + currentPosition); + newPositions.add(currentPosition); + continue; + } - // Déplace chaque pompier motorisé et éteint les feux à proximité - for (Position motorizedPosition : motorizedFighters) { - // Crée une instance temporaire de MotorizedFireFighter - MotorizedFireFighter motorizedFirefighter = new MotorizedFireFighter(motorizedPosition); + // Étape 2 : Calcul du deuxième déplacement + Position secondStep = targetStrategy.neighborClosestToTarget(firstStep, firePositions, neighbors); + Position finalPosition = (secondStep != null && neighbors.containsKey(secondStep)) ? secondStep : firstStep; - // Déplace le pompier - Position newPosition = motorizedFirefighter.move(firePositions, neighbors); + // Ajout de la position finale aux nouvelles positions + newPositions.add(finalPosition); - // Éteindre les feux à la nouvelle position - extinguishFire(firePositions, newPosition, modifiedPositions); + // Mise à jour des positions modifiées + modifiedPositions.add(currentPosition); // Ancienne position + modifiedPositions.add(finalPosition); // Nouvelle position - // Mettre à jour les positions - newMotorizedPositions.add(newPosition); - modifiedPositions.add(motorizedPosition); // Ancienne position - modifiedPositions.add(newPosition); // Nouvelle position + // Étape 3 : Éteindre les feux à la position finale + extinguish(finalPosition); + extinguishNearbyFires(finalPosition, modifiedPositions); } - // Met à jour la liste des positions des pompiers motorisés - motorizedFighters = newMotorizedPositions; - + // Mettre à jour les positions globales + motorizedFighters = newPositions; return modifiedPositions; } - - private void extinguish(Position position) { - firePositions.remove(position); - } /** - * Éteint les feux autour d'une position donnée. + * Éteint les feux à proximité d'une position donnée. * - * @param firePositions Les positions des feux actuels. * @param firefighterPosition La position actuelle du pompier. - * @param modifiedPositions Les positions modifiées pendant ce tour. + * @param modifiedPositions Les positions modifiées pendant ce tour. */ - protected void extinguishFire(Set<Position> firePositions, Position firefighterPosition, List<Position> modifiedPositions) { - List<Position> nearbyFires = neighbors.get(firefighterPosition).stream() + private void extinguishNearbyFires(Position firefighterPosition, List<Position> modifiedPositions) { + List<Position> nearbyFires = neighbors.getOrDefault(firefighterPosition, Collections.emptyList()) + .stream() .filter(firePositions::contains) .toList(); for (Position fire : nearbyFires) { firePositions.remove(fire); modifiedPositions.add(fire); + System.out.println("Feu éteint à : " + fire); } } + private void extinguish(Position position) { + firePositions.remove(position); + } + + + public Set<Position> getFirePositions() { return firePositions; } diff --git a/src/main/java/model/MotorizedFireFighter.java b/src/main/java/model/MotorizedFireFighter.java index 7fe7155..4a88631 100644 --- a/src/main/java/model/MotorizedFireFighter.java +++ b/src/main/java/model/MotorizedFireFighter.java @@ -5,12 +5,21 @@ import util.TargetStrategy; import java.util.*; -public class MotorizedFireFighter extends FireFighter{ +public class MotorizedFireFighter extends BoardElement{ private final TargetStrategy targetStrategy = new TargetStrategy(); public MotorizedFireFighter(Position position) { super(position); } + @Override + public String getType() { + return "MotorizedFireFighter"; + } + + @Override + public String toString() { + return null; + } /** @@ -24,15 +33,17 @@ public class MotorizedFireFighter extends FireFighter{ // Première étape Position firstStep = targetStrategy.neighborClosestToTarget(getPosition(), firePositions, neighbors); if (firstStep == null) { - return getPosition(); // Pas de mouvement possible + return getPosition(); // Aucun déplacement possible } // Deuxième étape Position secondStep = targetStrategy.neighborClosestToTarget(firstStep, firePositions, neighbors); - Position newPosition = secondStep != null ? secondStep : firstStep; // Mise à jour de la position - setPosition(newPosition); + Position newPosition = (secondStep != null) ? secondStep : firstStep; + setPosition(newPosition); // Mettre à jour la position interne return newPosition; } + + } -- GitLab