diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index 11bf550ba77e9f78efd401a6ec26338b1fac3249..0d10cd15e6aa1d0ba21cc348a2fb3c9faf15cd82 100644 Binary files a/.gradle/8.10.2/executionHistory/executionHistory.bin and b/.gradle/8.10.2/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock index dac92f57548c665f37e15c04f78feba376879cd2..dc9b958a69a79966bb17ff7689c9022c15f91339 100644 Binary files a/.gradle/8.10.2/executionHistory/executionHistory.lock and b/.gradle/8.10.2/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin index e9fad2f6bcfd39c3b27f49abca2b0dcc20b0fac5..87310951124d22132928c8af855e06a950b81eed 100644 Binary files a/.gradle/8.10.2/fileHashes/fileHashes.bin and b/.gradle/8.10.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock index 26e1d0321598155df152cbf5c7712a003606b051..20309a5ed04d71b4ec90a70520da51a1b0d06329 100644 Binary files a/.gradle/8.10.2/fileHashes/fileHashes.lock and b/.gradle/8.10.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin index 7a4b916756e0e3aa6a61e0e514fc79c039d6db72..475ab9df139928ba57d62937f467bbeed2e56065 100644 Binary files a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index e5c2ce6b62b46b091c65457a8a7b7c6273c14acb..3ee9cf49c8538b4e500bb8adaf6d780e784aebb4 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class index 3a34ffe9c7dbb5b1aa846a298857f775cab236f9..5a96d3a3c13b10ed04af9a938a84854c793dd986 100644 Binary files a/build/classes/java/main/controller/Controller.class and b/build/classes/java/main/controller/Controller.class differ diff --git a/build/classes/java/main/model/Board.class b/build/classes/java/main/model/Board.class deleted file mode 100644 index 38636074a072f0e4ce3549152ba24a266261d8c3..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Board.class and /dev/null differ diff --git a/build/classes/java/main/model/BoardBehavior.class b/build/classes/java/main/model/BoardBehavior.class deleted file mode 100644 index 056f9a3c8591df18076ad64c8d030b1ebbf2682b..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/BoardBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/BoardElement.class b/build/classes/java/main/model/BoardElement.class deleted file mode 100644 index 90b50bc72887ccf13f50734ad591ce2a7ac47430..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/BoardElement.class and /dev/null differ diff --git a/build/classes/java/main/model/BoardFireFighterBehavior.class b/build/classes/java/main/model/BoardFireFighterBehavior.class deleted file mode 100644 index 3e74039d1db131823cc7bf55e8726d520926bf0a..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/BoardFireFighterBehavior.class and /dev/null differ diff --git a/build/classes/java/main/model/BoardFirefighterProperties.class b/build/classes/java/main/model/BoardFirefighterProperties.class deleted file mode 100644 index a094b5badf9a5c8b929c25141e712d65a3445892..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/BoardFirefighterProperties.class and /dev/null differ diff --git a/build/classes/java/main/model/BoardProperties.class b/build/classes/java/main/model/BoardProperties.class deleted file mode 100644 index 93736154cb1db5f0fd6077cdc429a64c015a59c3..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/BoardProperties.class and /dev/null differ diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class deleted file mode 100644 index 12744497c0b4168a756584b31df839866c40bdf5..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/Fire.class and /dev/null differ diff --git a/build/classes/java/main/model/FireFactory.class b/build/classes/java/main/model/FireFactory.class deleted file mode 100644 index 2f20734f25cb06826f8e78ac0d44c6d1014be12f..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FireFactory.class and /dev/null differ diff --git a/build/classes/java/main/model/FireFighter.class b/build/classes/java/main/model/FireFighter.class deleted file mode 100644 index 6a9fddbd22bf77ca244173120fa183fe11a127e6..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FireFighter.class and /dev/null differ diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class deleted file mode 100644 index 5668462328eb03a346c50effd0ac3994bc3a02a7..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FirefighterBoard.class and /dev/null differ diff --git a/build/classes/java/main/model/FirefighterFactory.class b/build/classes/java/main/model/FirefighterFactory.class deleted file mode 100644 index 920e538c1bdada9fae8840e28871963a6761dd61..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/model/FirefighterFactory.class and /dev/null differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index a6a40cfe8ade29066b0b07d44bd5acba8dc9c2fc..d27c87eb8e9bdbede5c5e9a1b4a9ed104e091c99 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 32501c7095444f795c4727ab1732f414ac010071..053ab13663322761d27a3b2c4bd767b0072ecf0e 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -13,6 +13,14 @@ import javafx.scene.control.ToggleGroup; import javafx.util.Duration; import javafx.util.Pair; import model.*; +import model.Board.FirefighterBoard; +import model.ExtinguishFire.Cloud; +import model.ExtinguishFire.FireFighter; +import model.ExtinguishFire.MotorizedFireFighter; +import model.Obstacle.Mountain; +import model.Obstacle.Road; +import model.flammable.Fire; +import model.flammable.Rocky; import util.Position; import view.Grid; import view.ViewElement; diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board/Board.java similarity index 94% rename from src/main/java/model/Board.java rename to src/main/java/model/Board/Board.java index 6fe86eed823728dba8add1397072d1340d32f6bf..45d0651d0b341d1356c2f3d3c804b24939dec91c 100644 --- a/src/main/java/model/Board.java +++ b/src/main/java/model/Board/Board.java @@ -1,9 +1,7 @@ -package model; +package model.Board; import util.Position; -import java.util.List; - public interface Board<S> { /** diff --git a/src/main/java/model/BoardBehavior.java b/src/main/java/model/Board/BoardBehavior.java similarity index 96% rename from src/main/java/model/BoardBehavior.java rename to src/main/java/model/Board/BoardBehavior.java index 8845d2386be6498d071bdce2b5f4dd1b7d136a85..bbbd94b0f137f52252f48641ceee2c24ab5f8d50 100644 --- a/src/main/java/model/BoardBehavior.java +++ b/src/main/java/model/Board/BoardBehavior.java @@ -1,4 +1,4 @@ -package model; +package model.Board; import util.Position; import java.util.List; diff --git a/src/main/java/model/BoardElement.java b/src/main/java/model/Board/BoardElement.java similarity index 79% rename from src/main/java/model/BoardElement.java rename to src/main/java/model/Board/BoardElement.java index c17510824ac41bf28a02ff347205b55801c3672e..fa3edde5b7d5c92d154f70455e4e03203a3ca659 100644 --- a/src/main/java/model/BoardElement.java +++ b/src/main/java/model/Board/BoardElement.java @@ -1,8 +1,9 @@ -package model; +package model.Board; +import model.ModelElement; import util.Position; -public abstract class BoardElement implements ModelElement{ +public abstract class BoardElement implements ModelElement { protected Position position; public BoardElement(Position position) { diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/Board/BoardFireFighterBehavior.java similarity index 90% rename from src/main/java/model/BoardFireFighterBehavior.java rename to src/main/java/model/Board/BoardFireFighterBehavior.java index f338a758a6aa99f869db2a9a8cf83c5649c6f1c9..1f1d4679bd6e422bb71327bfb758c055d3a0ccb7 100644 --- a/src/main/java/model/BoardFireFighterBehavior.java +++ b/src/main/java/model/Board/BoardFireFighterBehavior.java @@ -1,11 +1,21 @@ -package model; - +package model.Board; + +import model.*; +import model.ExtinguishFire.*; +import model.Obstacle.MountainGenerator; +import model.Obstacle.Road; +import model.Obstacle.Terrain; +import model.flammable.Fire; +import model.flammable.FireMovements; +import model.flammable.Rocky; import util.Position; import util.TargetStrategy; import java.util.*; -public class BoardFireFighterBehavior implements BoardBehavior{ +import static model.flammable.Rocky.canFirePropagate; + +public class BoardFireFighterBehavior implements BoardBehavior { private static TargetStrategy targetStrategy = new TargetStrategy(); private static Map<Position, List<Position>> neighbors; @@ -20,8 +30,8 @@ public class BoardFireFighterBehavior implements BoardBehavior{ static Movements motorizedMovements; private ElementGenerator moutainGenerator; - public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory, - ElementFactory<Cloud> cloudFactory,ElementFactory<MotorizedFireFighter> motorizedFactory,ElementFactory<Rocky> rockyFactory) { + public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory , ElementFactory<FireFighter> firefighterFactory, + ElementFactory<Cloud> cloudFactory, ElementFactory<MotorizedFireFighter> motorizedFactory, ElementFactory<Rocky> rockyFactory) { this.step=0; this.neighbors = neighbors; this.rockyFactory=rockyFactory; @@ -58,6 +68,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{ fireMovements.getPositions().remove(position); + } @@ -141,7 +152,8 @@ public class BoardFireFighterBehavior implements BoardBehavior{ } if(rocky.contains(position)) { - return Rocky.canFirePropagate(); + rocky.remove(position); + return canFirePropagate(); } return true; // La position est traversable @@ -230,4 +242,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{ return (List<Position>) motorizedMovements.getPositions(); } + public static Movements getFireMovements() { + return fireMovements; + } } diff --git a/src/main/java/model/BoardFirefighterProperties.java b/src/main/java/model/Board/BoardFirefighterProperties.java similarity index 93% rename from src/main/java/model/BoardFirefighterProperties.java rename to src/main/java/model/Board/BoardFirefighterProperties.java index 243f8ad005905c6ad027220f9bdb43a5a8720d03..8d6023feea16a2257518e2ca30d69511cddc7941 100644 --- a/src/main/java/model/BoardFirefighterProperties.java +++ b/src/main/java/model/Board/BoardFirefighterProperties.java @@ -1,11 +1,8 @@ -package model; +package model.Board; import util.Position; -import java.util.List; -import java.util.Map; - -public class BoardFirefighterProperties implements BoardProperties{ +public class BoardFirefighterProperties implements BoardProperties { private final int rowCount; private final int columnCount; private final Position[][] positions; diff --git a/src/main/java/model/BoardProperties.java b/src/main/java/model/Board/BoardProperties.java similarity index 89% rename from src/main/java/model/BoardProperties.java rename to src/main/java/model/Board/BoardProperties.java index 07ad3f7aea888f47d079d4c0d172282e5ab18843..3b5ac77860ee3f62f7fcf70bc201b965de8c96c7 100644 --- a/src/main/java/model/BoardProperties.java +++ b/src/main/java/model/Board/BoardProperties.java @@ -1,8 +1,4 @@ -package model; - -import util.Position; - -import java.util.List; +package model.Board; /** * Interface représentant les propriétés d'un tableau générique pour la gestion de l'état. diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/Board/FirefighterBoard.java similarity index 94% rename from src/main/java/model/FirefighterBoard.java rename to src/main/java/model/Board/FirefighterBoard.java index cf8e4e0631f8cf29a6c92ba9d77fa11de177166b..f4d23f0ea695d53c7e753e776b395be1c9ae12f5 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/Board/FirefighterBoard.java @@ -1,5 +1,13 @@ -package model; - +package model.Board; + +import model.*; +import model.ExtinguishFire.*; +import model.Obstacle.Mountain; +import model.Obstacle.Road; +import model.flammable.Fire; +import model.flammable.FireFactory; +import model.flammable.Rocky; +import model.flammable.RockyFactory; import util.Position; import java.util.*; diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/ExtinguishFire/Cloud.java similarity index 82% rename from src/main/java/model/Cloud.java rename to src/main/java/model/ExtinguishFire/Cloud.java index 1df253fdc1e8ad179c8febb32c8679019f9afa43..58dcff6e3d3ee76901c826d4cc634f8cc688e254 100644 --- a/src/main/java/model/Cloud.java +++ b/src/main/java/model/ExtinguishFire/Cloud.java @@ -1,6 +1,6 @@ -package model; +package model.ExtinguishFire; -import model.BoardElement; +import model.Board.BoardElement; import util.Position; public class Cloud extends BoardElement { diff --git a/src/main/java/model/CloudFactory.java b/src/main/java/model/ExtinguishFire/CloudFactory.java similarity index 91% rename from src/main/java/model/CloudFactory.java rename to src/main/java/model/ExtinguishFire/CloudFactory.java index 49fdd5bc527c9f4b518a4908b11e6083bc975be5..29491b356687a4bd9e5b247f56b31eca4cc79691 100644 --- a/src/main/java/model/CloudFactory.java +++ b/src/main/java/model/ExtinguishFire/CloudFactory.java @@ -1,5 +1,7 @@ -package model; +package model.ExtinguishFire; +import model.ElementFactory; +import model.PositionGenerator; import util.Position; import java.util.ArrayList; diff --git a/src/main/java/model/CloudMovements.java b/src/main/java/model/ExtinguishFire/CloudMovements.java similarity index 90% rename from src/main/java/model/CloudMovements.java rename to src/main/java/model/ExtinguishFire/CloudMovements.java index 849db9f5b5ffcd840c23c83cde35088a6ae2c8c2..c5269e8f7906f987db955b50f2c57a3c3d0729ff 100644 --- a/src/main/java/model/CloudMovements.java +++ b/src/main/java/model/ExtinguishFire/CloudMovements.java @@ -1,12 +1,14 @@ -package model; +package model.ExtinguishFire; +import model.ElementFactory; +import model.Movements; import util.Position; import java.util.*; -import static model.BoardFireFighterBehavior.*; +import static model.Board.BoardFireFighterBehavior.*; -public class CloudMovements implements Movements{ +public class CloudMovements implements Movements { private List<Position> cloudPositions; private final ElementFactory<Cloud> cloudFactory; public CloudMovements(ElementFactory<Cloud> cloudFactory) { @@ -30,7 +32,7 @@ public class CloudMovements implements Movements{ List<Position> newCloudPositions = new ArrayList<>(); // Copier les positions actuelles des feux pour éviter les incohérences pendant l'itération - Set<Position> firePositions = new HashSet<>(fireMovements.getPositions()); + Set<Position> firePositions = new HashSet<>(getFireMovements().getPositions()); for (Position cloudPosition : cloudPositions) { // Déplacement aléatoire parmi les voisins diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/ExtinguishFire/FireFighter.java similarity index 71% rename from src/main/java/model/FireFighter.java rename to src/main/java/model/ExtinguishFire/FireFighter.java index 17c1846bcb312629f4744581edfdb220736a6703..611544d5df8c19a3a802becea524a799a3490d0f 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/ExtinguishFire/FireFighter.java @@ -1,8 +1,9 @@ -package model; +package model.ExtinguishFire; +import model.Board.BoardElement; import util.Position; -public class FireFighter extends BoardElement{ +public class FireFighter extends BoardElement { public FireFighter(Position position) { super(position); } diff --git a/src/main/java/model/FireFighterMovements.java b/src/main/java/model/ExtinguishFire/FireFighterMovements.java similarity index 87% rename from src/main/java/model/FireFighterMovements.java rename to src/main/java/model/ExtinguishFire/FireFighterMovements.java index 6e1ded828c1572cde2a440e92f50659bd8e0412f..91c2f781abfc382acc7ec78b52f3ba3872b99039 100644 --- a/src/main/java/model/FireFighterMovements.java +++ b/src/main/java/model/ExtinguishFire/FireFighterMovements.java @@ -1,5 +1,7 @@ -package model; +package model.ExtinguishFire; +import model.ElementFactory; +import model.Movements; import util.Position; import java.util.ArrayList; @@ -7,9 +9,9 @@ import java.util.Collection; import java.util.List; import java.util.Set; -import static model.BoardFireFighterBehavior.*; +import static model.Board.BoardFireFighterBehavior.*; -public class FireFighterMovements implements Movements{ +public class FireFighterMovements implements Movements { private final ElementFactory<FireFighter> firefighterFactory; private List<Position> firefighterPositions; public FireFighterMovements(ElementFactory<FireFighter> firefighterFactory) { @@ -26,10 +28,10 @@ public class FireFighterMovements implements Movements{ for (Position firefighterPosition : firefighterPositions) { // Calcul de la position vers laquelle le pompier devrait se déplacer - Position newFirefighterPosition =getTargetStrategy().neighborClosestToTarget(firefighterPosition, fireMovements.getPositions(), getNeighbors()); + Position newFirefighterPosition =getTargetStrategy().neighborClosestToTarget(firefighterPosition, getFireMovements().getPositions(), getNeighbors()); // Vérification si la position cible est valide pour le mouvement - if (canMoveTo(newFirefighterPosition, (Set<Position>) fireMovements.getPositions(), firefighterPositions)) { + if (canMoveTo(newFirefighterPosition, (Set<Position>) getFireMovements().getPositions(), firefighterPositions)) { // Si le déplacement est valide, on met à jour la position du pompier newFirefighterPositions.add(newFirefighterPosition); @@ -40,7 +42,7 @@ public class FireFighterMovements implements Movements{ // Vérification des voisins et extinction des feux voisins List<Position> neighborFirePositions = getNeighbors().get(newFirefighterPosition).stream() - .filter(fireMovements.getPositions()::contains).toList(); + .filter(getFireMovements().getPositions()::contains).toList(); // Log pour débogage System.out.println("Pompiers se déplacent de " + firefighterPosition + " vers " + newFirefighterPosition); diff --git a/src/main/java/model/FirefighterFactory.java b/src/main/java/model/ExtinguishFire/FirefighterFactory.java similarity index 89% rename from src/main/java/model/FirefighterFactory.java rename to src/main/java/model/ExtinguishFire/FirefighterFactory.java index acb12afa7950578b0bcfa6c4714edce39d83d86f..b45e236b24c34660e9c729a81a3aeca73d55c673 100644 --- a/src/main/java/model/FirefighterFactory.java +++ b/src/main/java/model/ExtinguishFire/FirefighterFactory.java @@ -1,12 +1,14 @@ -package model; +package model.ExtinguishFire; +import model.ElementFactory; +import model.PositionGenerator; import util.Position; import java.util.ArrayList; import java.util.List; import java.util.Random; -public class FirefighterFactory implements ElementFactory<FireFighter>, PositionGenerator{ +public class FirefighterFactory implements ElementFactory<FireFighter>, PositionGenerator { private final Random random; private int count; diff --git a/src/main/java/model/MotorizedFactory.java b/src/main/java/model/ExtinguishFire/MotorizedFactory.java similarity index 89% rename from src/main/java/model/MotorizedFactory.java rename to src/main/java/model/ExtinguishFire/MotorizedFactory.java index 326a5c193f53c436d5497b22fa23048cfadac3d1..e126fd1a7db5a1f11842e9d5f873089812ef26f1 100644 --- a/src/main/java/model/MotorizedFactory.java +++ b/src/main/java/model/ExtinguishFire/MotorizedFactory.java @@ -1,12 +1,14 @@ -package model; +package model.ExtinguishFire; +import model.ElementFactory; +import model.PositionGenerator; import util.Position; import java.util.ArrayList; import java.util.List; import java.util.Random; -public class MotorizedFactory implements ElementFactory<MotorizedFireFighter>, PositionGenerator{ +public class MotorizedFactory implements ElementFactory<MotorizedFireFighter>, PositionGenerator { private final Random random; private int count; diff --git a/src/main/java/model/MotorizedFireFighter.java b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java similarity index 91% rename from src/main/java/model/MotorizedFireFighter.java rename to src/main/java/model/ExtinguishFire/MotorizedFireFighter.java index 4a1fe7ef57d1c180d5ce890c22ca813730664152..8c76873729bb388bcdef01cdc1de9abc72d9f9ed 100644 --- a/src/main/java/model/MotorizedFireFighter.java +++ b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java @@ -1,11 +1,12 @@ -package model; +package model.ExtinguishFire; +import model.Board.BoardElement; import util.Position; import util.TargetStrategy; import java.util.*; -public class MotorizedFireFighter extends BoardElement{ +public class MotorizedFireFighter extends BoardElement { private final TargetStrategy targetStrategy = new TargetStrategy(); public MotorizedFireFighter(Position position) { super(position); diff --git a/src/main/java/model/MotorizedMovements.java b/src/main/java/model/ExtinguishFire/MotorizedMovements.java similarity index 88% rename from src/main/java/model/MotorizedMovements.java rename to src/main/java/model/ExtinguishFire/MotorizedMovements.java index a5be9dec1000206410ab16de6106412fd1132b54..f486f19eb065d9f6d9d6a32bca94ba7ced46cea5 100644 --- a/src/main/java/model/MotorizedMovements.java +++ b/src/main/java/model/ExtinguishFire/MotorizedMovements.java @@ -1,15 +1,17 @@ -package model; +package model.ExtinguishFire; +import model.ElementFactory; +import model.Movements; import util.Position; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; -import static model.BoardFireFighterBehavior.*; +import static model.Board.BoardFireFighterBehavior.*; +import static model.flammable.FireMovements.*; -public class MotorizedMovements implements Movements{ +public class MotorizedMovements implements Movements { private final ElementFactory<MotorizedFireFighter> motorizedFactory; private List<Position> motorizedFighters; @@ -32,7 +34,7 @@ public class MotorizedMovements implements Movements{ } // Étape 1 : Calcul du premier déplacement - Position firstStep = getTargetStrategy().neighborClosestToTarget(currentPosition, fireMovements.getPositions(), getNeighbors()); + Position firstStep = getTargetStrategy().neighborClosestToTarget(currentPosition, getFireMovements().getPositions(), getNeighbors()); if (firstStep == null || !getNeighbors().containsKey(firstStep)) { // Aucun déplacement possible, rester sur place System.out.println("Pas de première étape possible pour : " + currentPosition); @@ -41,7 +43,7 @@ public class MotorizedMovements implements Movements{ } // Étape 2 : Calcul du deuxième déplacement - Position secondStep = getTargetStrategy().neighborClosestToTarget(firstStep, fireMovements.getPositions(), getNeighbors()); + Position secondStep = getTargetStrategy().neighborClosestToTarget(firstStep, getFireMovements().getPositions(), getNeighbors()); Position finalPosition = (secondStep != null && getNeighbors().containsKey(secondStep)) ? secondStep : firstStep; // Ajout de la position finale aux nouvelles positions diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/Obstacle/Mountain.java similarity index 91% rename from src/main/java/model/Mountain.java rename to src/main/java/model/Obstacle/Mountain.java index 4abca344ba224accebc1d398c234f69b13acdc62..5dfe64a5e9cb51d3a8519fe2ec8c7a7db71414a3 100644 --- a/src/main/java/model/Mountain.java +++ b/src/main/java/model/Obstacle/Mountain.java @@ -1,5 +1,6 @@ -package model; +package model.Obstacle; +import model.Board.BoardElement; import util.Position; public class Mountain extends BoardElement implements Terrain { diff --git a/src/main/java/model/MountainGenerator.java b/src/main/java/model/Obstacle/MountainGenerator.java similarity index 91% rename from src/main/java/model/MountainGenerator.java rename to src/main/java/model/Obstacle/MountainGenerator.java index dd98994fd367290a380a1e7a0f1341eedf53bfd6..9c486ef9f11084faae681c8a59d31aa7b6a32b88 100644 --- a/src/main/java/model/MountainGenerator.java +++ b/src/main/java/model/Obstacle/MountainGenerator.java @@ -1,12 +1,13 @@ -package model; +package model.Obstacle; +import model.ElementGenerator; import util.Position; import java.util.Random; -import static model.BoardFireFighterBehavior.getTerrainMap; +import static model.Board.BoardFireFighterBehavior.getTerrainMap; -public class MountainGenerator implements ElementGenerator{ +public class MountainGenerator implements ElementGenerator { @Override public void generateElement(int rowCount, int columnCount) { Random random = new Random(); diff --git a/src/main/java/model/Road.java b/src/main/java/model/Obstacle/Road.java similarity index 78% rename from src/main/java/model/Road.java rename to src/main/java/model/Obstacle/Road.java index ee3d8d5774774bee5c5df887bb687e717064c55c..c2c91a5f1f9e072cbd545cb86f61ad473c56165a 100644 --- a/src/main/java/model/Road.java +++ b/src/main/java/model/Obstacle/Road.java @@ -1,8 +1,9 @@ -package model; +package model.Obstacle; +import model.Board.BoardElement; import util.Position; -public class Road extends BoardElement implements Terrain{ +public class Road extends BoardElement implements Terrain { public Road(Position position) { super(position); } diff --git a/src/main/java/model/Terrain.java b/src/main/java/model/Obstacle/Terrain.java similarity index 82% rename from src/main/java/model/Terrain.java rename to src/main/java/model/Obstacle/Terrain.java index bc195166771072bfc1dbf44327a6b35973b4a078..9ea3e1634b006714fc254a222e8b5122d1830477 100644 --- a/src/main/java/model/Terrain.java +++ b/src/main/java/model/Obstacle/Terrain.java @@ -1,4 +1,4 @@ -package model; +package model.Obstacle; public interface Terrain { diff --git a/src/main/java/model/Fire.java b/src/main/java/model/flammable/Fire.java similarity index 75% rename from src/main/java/model/Fire.java rename to src/main/java/model/flammable/Fire.java index 388e294c81231ad175d7d6ffe18df8c174fa39d7..8a909c29af5f3bce6e19a0b7bfb0272de6148c74 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/flammable/Fire.java @@ -1,8 +1,9 @@ -package model; +package model.flammable; +import model.Board.BoardElement; import util.Position; -public class Fire extends BoardElement{ +public class Fire extends BoardElement { public Fire(Position position) { super(position); } diff --git a/src/main/java/model/FireFactory.java b/src/main/java/model/flammable/FireFactory.java similarity index 89% rename from src/main/java/model/FireFactory.java rename to src/main/java/model/flammable/FireFactory.java index 7bcd71402e0f3a98f416a1b558b394e102ceba91..44870918a5d16be0bd7cbc8a34cf10dd68e60adb 100644 --- a/src/main/java/model/FireFactory.java +++ b/src/main/java/model/flammable/FireFactory.java @@ -1,12 +1,14 @@ -package model; +package model.flammable; +import model.ElementFactory; +import model.PositionGenerator; import util.Position; import java.util.ArrayList; import java.util.List; import java.util.Random; -public class FireFactory implements ElementFactory<Fire>,PositionGenerator{ +public class FireFactory implements ElementFactory<Fire>, PositionGenerator { private final Random random; private int count; diff --git a/src/main/java/model/FireMovements.java b/src/main/java/model/flammable/FireMovements.java similarity index 91% rename from src/main/java/model/FireMovements.java rename to src/main/java/model/flammable/FireMovements.java index 9e4afd72fee788d196a2efc081d46a25546d3291..dc5c1231aa15ef3c61810da41c7ca4a1896dacc7 100644 --- a/src/main/java/model/FireMovements.java +++ b/src/main/java/model/flammable/FireMovements.java @@ -1,12 +1,14 @@ -package model; +package model.flammable; +import model.ElementFactory; +import model.Movements; import util.Position; import java.util.*; -import static model.BoardFireFighterBehavior.*; +import static model.Board.BoardFireFighterBehavior.*; -public class FireMovements implements Movements{ +public class FireMovements implements Movements { private final ElementFactory<Fire> fireFactory; private Set<Position> firePositions; diff --git a/src/main/java/model/Rocky.java b/src/main/java/model/flammable/Rocky.java similarity index 79% rename from src/main/java/model/Rocky.java rename to src/main/java/model/flammable/Rocky.java index 099fabac4708e5e6ebf7b6acce1c117aa2dd05eb..97624842759a6988d00f058c72d315dc67de07f8 100644 --- a/src/main/java/model/Rocky.java +++ b/src/main/java/model/flammable/Rocky.java @@ -1,8 +1,9 @@ -package model; +package model.flammable; +import model.Board.BoardElement; import util.Position; -public class Rocky extends BoardElement{ +public class Rocky extends BoardElement { private static int firePropagationCounter; public Rocky(Position position) { super(position); @@ -27,7 +28,4 @@ public class Rocky extends BoardElement{ return null; } - public static int getFirePropagationCounter() { - return firePropagationCounter; - } } diff --git a/src/main/java/model/RockyFactory.java b/src/main/java/model/flammable/RockyFactory.java similarity index 84% rename from src/main/java/model/RockyFactory.java rename to src/main/java/model/flammable/RockyFactory.java index f1f323f7e620babf91dfd76a9911438d2f46f86b..f4937b9ea64a867c3e7808bd18dd6dfea321089b 100644 --- a/src/main/java/model/RockyFactory.java +++ b/src/main/java/model/flammable/RockyFactory.java @@ -1,12 +1,14 @@ -package model; +package model.flammable; +import model.ElementFactory; +import model.PositionGenerator; import util.Position; import java.util.ArrayList; import java.util.List; import java.util.Random; -public class RockyFactory implements ElementFactory<Rocky>,PositionGenerator{ +public class RockyFactory implements ElementFactory<Rocky>, PositionGenerator { private final Random random; private int count;