From 6e705dabcdf86269316d5f0ab30e0bdb236c119b Mon Sep 17 00:00:00 2001 From: Yanis O <oualanyanis01@gmail.com> Date: Sat, 23 Nov 2024 22:31:24 +0100 Subject: [PATCH] Rangement dans des package --- src/main/java/app/SimulatorApplication.java | 16 ++++++++-------- src/main/java/controller/Controller.java | 16 ++++++++-------- .../{ => firefighterscenario}/AirTanker.java | 5 ++++- .../model/{ => firefighterscenario}/Cloud.java | 9 ++++++++- .../model/{ => firefighterscenario}/Fire.java | 5 ++++- .../{ => firefighterscenario}/FireFighter.java | 8 ++++++-- .../FireFighterScenario.java | 14 ++++++++++++-- .../MotorizedFireFighter.java | 4 +++- .../{ => firefighterscenario}/Mountain.java | 5 ++++- .../model/{ => firefighterscenario}/Road.java | 5 ++++- .../model/{ => firefighterscenario}/Rockery.java | 5 ++++- src/main/java/util/Matrix.java | 4 ++-- 12 files changed, 67 insertions(+), 29 deletions(-) rename src/main/java/model/{ => firefighterscenario}/AirTanker.java (98%) rename src/main/java/model/{ => firefighterscenario}/Cloud.java (92%) rename src/main/java/model/{ => firefighterscenario}/Fire.java (97%) rename src/main/java/model/{ => firefighterscenario}/FireFighter.java (97%) rename src/main/java/model/{ => firefighterscenario}/FireFighterScenario.java (94%) rename src/main/java/model/{ => firefighterscenario}/MotorizedFireFighter.java (98%) rename src/main/java/model/{ => firefighterscenario}/Mountain.java (91%) rename src/main/java/model/{ => firefighterscenario}/Road.java (91%) rename src/main/java/model/{ => firefighterscenario}/Rockery.java (93%) diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java index 14f8fbb..a2d7b95 100644 --- a/src/main/java/app/SimulatorApplication.java +++ b/src/main/java/app/SimulatorApplication.java @@ -13,16 +13,16 @@ import javafx.stage.Stage; public class SimulatorApplication extends javafx.application.Application { private static final String VIEW_RESOURCE_PATH = "/view/view.fxml"; private static final String APP_NAME = "Firefighter simulator"; - private static final int ROW_COUNT = 50; - private static final int COLUMN_COUNT = 50; + private static final int ROW_COUNT = 40; + private static final int COLUMN_COUNT = 40; private static final int BOX_WIDTH = 15; private static final int BOX_HEIGHT = 15; - public static final int INITIAL_FIRE_COUNT = 6; - public static final int INITIAL_FIREFIGHTER_COUNT = 32; - public static final int INITIAL_MOTORIZED_FIREFIGHTER_COUNT = 10; - public static final int INITIAL_CLOUD_COUNT = 15; - public static final int INITIAL_MOUNTAIN_COUNT= 28; - public static final int TURNS_FOR_SPAWNING_AIRTANKER = 4; + public static final int INITIAL_FIRE_COUNT = 8; + public static final int INITIAL_FIREFIGHTER_COUNT = 6; + public static final int INITIAL_MOTORIZED_FIREFIGHTER_COUNT = 8; + public static final int INITIAL_CLOUD_COUNT = 20; + public static final int INITIAL_MOUNTAIN_COUNT= 20; + public static final int TURNS_FOR_SPAWNING_AIRTANKER = 10; private Stage primaryStage; private Parent view; diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 0e99dcf..1cf8965 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -20,15 +20,15 @@ import javafx.scene.control.ToggleGroup; import javafx.util.Duration; import javafx.util.Pair; import model.Board; -import model.Cloud; import model.EntityFactory; -import model.Fire; -import model.FireFighter; -import model.FireFighterScenario; -import model.MotorizedFireFighter; -import model.Mountain; -import model.Rockery; import model.Square; +import model.firefighterscenario.Cloud; +import model.firefighterscenario.Fire; +import model.firefighterscenario.FireFighter; +import model.firefighterscenario.FireFighterScenario; +import model.firefighterscenario.MotorizedFireFighter; +import model.firefighterscenario.Mountain; +import model.firefighterscenario.Rockery; import util.Position; import view.Grid; import view.ViewElement; @@ -136,7 +136,7 @@ public class Controller { entityCounts.put((pos, b) -> new MotorizedFireFighter(pos, b), initialMotorizedFirefightersCount); entityCounts.put((pos, b) -> new Cloud(pos, b), initialcloudCount); entityCounts.put((pos, b) -> new Mountain(pos), initialmountaincount); - entityCounts.put((pos, b) -> new Rockery(pos), 30); + entityCounts.put((pos, b) -> new Rockery(pos), 3); model.placeInitialEntities(entityCounts); this.setModel(model); diff --git a/src/main/java/model/AirTanker.java b/src/main/java/model/firefighterscenario/AirTanker.java similarity index 98% rename from src/main/java/model/AirTanker.java rename to src/main/java/model/firefighterscenario/AirTanker.java index 4f4bfc1..a80fdb6 100644 --- a/src/main/java/model/AirTanker.java +++ b/src/main/java/model/firefighterscenario/AirTanker.java @@ -1,10 +1,13 @@ -package model; +package model.firefighterscenario; import java.util.ArrayList; import java.util.List; import java.util.Objects; import javafx.scene.paint.Color; +import model.Board; +import model.Entity; +import model.Square; import util.Direction; import util.Position; import util.PositionUtil; diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/firefighterscenario/Cloud.java similarity index 92% rename from src/main/java/model/Cloud.java rename to src/main/java/model/firefighterscenario/Cloud.java index 840195d..3a587b5 100644 --- a/src/main/java/model/Cloud.java +++ b/src/main/java/model/firefighterscenario/Cloud.java @@ -1,9 +1,13 @@ -package model; +package model.firefighterscenario; import java.util.List; import java.util.Random; import javafx.scene.paint.Color; +import model.Board; +import model.EmptySquare; +import model.Entity; +import model.Square; import util.Position; import util.PositionUtil; @@ -37,6 +41,9 @@ public class Cloud implements Entity{ adjacentPositions.removeIf(p -> b.doesSquareContainEntity(p, FireFighter.class)); // Choisir une position aléatoire parmi les mouvements possibles + if(adjacentPositions.size() < 0){ + return List.of(); + } Position next_position = adjacentPositions.get(new Random().nextInt(adjacentPositions.size())); // Si la nouvelle position contient un feu, éteindre le feu diff --git a/src/main/java/model/Fire.java b/src/main/java/model/firefighterscenario/Fire.java similarity index 97% rename from src/main/java/model/Fire.java rename to src/main/java/model/firefighterscenario/Fire.java index 3324819..0d79d7a 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/firefighterscenario/Fire.java @@ -1,4 +1,4 @@ -package model; +package model.firefighterscenario; import java.util.ArrayList; import java.util.List; @@ -6,6 +6,9 @@ import java.util.Objects; import java.util.Optional; import javafx.scene.paint.Color; +import model.Board; +import model.Entity; +import model.Square; import util.Position; import util.PositionUtil; diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/firefighterscenario/FireFighter.java similarity index 97% rename from src/main/java/model/FireFighter.java rename to src/main/java/model/firefighterscenario/FireFighter.java index cf4307b..8adfeba 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/firefighterscenario/FireFighter.java @@ -1,9 +1,13 @@ -package model; +package model.firefighterscenario; import java.util.ArrayList; import java.util.List; import java.util.Random; import javafx.scene.paint.Color; +import model.Board; +import model.EmptySquare; +import model.Entity; +import model.Square; import util.Position; import util.PositionUtil; @@ -129,7 +133,7 @@ public class FireFighter implements Entity { List<Position> possibleMoves = PositionUtil.generateAllAdjacentPositions(currentPos, b); // Filter out positions that are not empty or contain obstacles - possibleMoves.removeIf(p -> !b.isPositionEmpty(p) || b.doesSquareContainEntity(p, Mountain.class)); + possibleMoves.removeIf(p -> b.doesSquareContainEntity(p, Mountain.class)); // If no possible moves, return null if (possibleMoves.isEmpty()) { diff --git a/src/main/java/model/FireFighterScenario.java b/src/main/java/model/firefighterscenario/FireFighterScenario.java similarity index 94% rename from src/main/java/model/FireFighterScenario.java rename to src/main/java/model/firefighterscenario/FireFighterScenario.java index 66e0be1..658e958 100644 --- a/src/main/java/model/FireFighterScenario.java +++ b/src/main/java/model/firefighterscenario/FireFighterScenario.java @@ -1,4 +1,4 @@ -package model; +package model.firefighterscenario; import java.util.ArrayList; import java.util.Iterator; @@ -6,6 +6,13 @@ import java.util.List; import java.util.Map; import java.util.Random; +import app.SimulatorApplication; +import model.Board; +import model.Entity; +import model.EntityFactory; +import model.EntityScenario; +import model.EntitySpawner; +import model.Square; import util.Matrix; import util.PathGenerator; import util.Position; @@ -15,12 +22,14 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> private Matrix<Square> matrix; private int step; + private int turnsToSpawnAirTanker; private Map<EntityFactory, Integer> initialMap; public FireFighterScenario(int columns, int rows) { this.matrix = new Matrix<Square>(columns, rows); initScenario(matrix); + this.turnsToSpawnAirTanker = SimulatorApplication.TURNS_FOR_SPAWNING_AIRTANKER; this.step = 0; } @@ -105,7 +114,8 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> this.step = this.step + 1; // Check if it's time to spawn an AirTanker - if (this.step % 8 == 0) { + if (this.step % this.turnsToSpawnAirTanker == 0) { + System.out.println("apparation"); // Spawn an AirTanker at a random edge position spawnAirTanker(changedPositions); } diff --git a/src/main/java/model/MotorizedFireFighter.java b/src/main/java/model/firefighterscenario/MotorizedFireFighter.java similarity index 98% rename from src/main/java/model/MotorizedFireFighter.java rename to src/main/java/model/firefighterscenario/MotorizedFireFighter.java index 146fb38..3564d38 100644 --- a/src/main/java/model/MotorizedFireFighter.java +++ b/src/main/java/model/firefighterscenario/MotorizedFireFighter.java @@ -1,9 +1,11 @@ -package model; +package model.firefighterscenario; import java.util.ArrayList; import java.util.List; import javafx.scene.paint.Color; +import model.Board; +import model.Square; import util.Position; import util.PositionUtil; diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/firefighterscenario/Mountain.java similarity index 91% rename from src/main/java/model/Mountain.java rename to src/main/java/model/firefighterscenario/Mountain.java index 4315c6f..e229c30 100644 --- a/src/main/java/model/Mountain.java +++ b/src/main/java/model/firefighterscenario/Mountain.java @@ -1,8 +1,11 @@ -package model; +package model.firefighterscenario; import java.util.List; import javafx.scene.paint.Color; +import model.Board; +import model.Entity; +import model.Square; import util.Position; public class Mountain implements Entity{ diff --git a/src/main/java/model/Road.java b/src/main/java/model/firefighterscenario/Road.java similarity index 91% rename from src/main/java/model/Road.java rename to src/main/java/model/firefighterscenario/Road.java index aacbd8e..fa90dc7 100644 --- a/src/main/java/model/Road.java +++ b/src/main/java/model/firefighterscenario/Road.java @@ -1,8 +1,11 @@ -package model; +package model.firefighterscenario; import java.util.List; import javafx.scene.paint.Color; +import model.Board; +import model.Entity; +import model.Square; import util.Position; public class Road implements Entity{ diff --git a/src/main/java/model/Rockery.java b/src/main/java/model/firefighterscenario/Rockery.java similarity index 93% rename from src/main/java/model/Rockery.java rename to src/main/java/model/firefighterscenario/Rockery.java index 6aebd27..9b64db3 100644 --- a/src/main/java/model/Rockery.java +++ b/src/main/java/model/firefighterscenario/Rockery.java @@ -1,8 +1,11 @@ -package model; +package model.firefighterscenario; import java.util.List; import javafx.scene.paint.Color; +import model.Board; +import model.Entity; +import model.Square; import util.Position; public class Rockery implements Entity{ diff --git a/src/main/java/util/Matrix.java b/src/main/java/util/Matrix.java index 920d2a4..36a06da 100644 --- a/src/main/java/util/Matrix.java +++ b/src/main/java/util/Matrix.java @@ -5,9 +5,9 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; -import model.Fire; -import model.FireFighter; import model.Square; +import model.firefighterscenario.Fire; +import model.firefighterscenario.FireFighter; public class Matrix<E> implements Iterable<E> { private ArrayList<ArrayList<E>> matrix; -- GitLab