From c7648e79b5663812a89a76795c3ff05bd2cf9329 Mon Sep 17 00:00:00 2001
From: Celia AREZKI <celia.arezki.1@etu.univ-amu.fr>
Date: Fri, 6 Dec 2024 13:06:10 +0100
Subject: [PATCH] Define the Strategy of the move

---
 .../model/Board/BoardFireFighterBehavior.java | 64 +++++++++----------
 ...CloudMovements.java => CloudStrategy.java} |  6 +-
 ...ovements.java => FireFighterStrategy.java} |  6 +-
 ...dMovements.java => MotorizedStrategy.java} |  7 +-
 .../model/{Movements.java => Strategy.java}   |  2 +-
 .../{FireMovements.java => FireStrategy.java} |  6 +-
 6 files changed, 45 insertions(+), 46 deletions(-)
 rename src/main/java/model/ExtinguishFire/{CloudMovements.java => CloudStrategy.java} (95%)
 rename src/main/java/model/ExtinguishFire/{FireFighterMovements.java => FireFighterStrategy.java} (95%)
 rename src/main/java/model/ExtinguishFire/{MotorizedMovements.java => MotorizedStrategy.java} (93%)
 rename src/main/java/model/{Movements.java => Strategy.java} (89%)
 rename src/main/java/model/flammable/{FireMovements.java => FireStrategy.java} (93%)

diff --git a/src/main/java/model/Board/BoardFireFighterBehavior.java b/src/main/java/model/Board/BoardFireFighterBehavior.java
index 1f1d467..9a88252 100644
--- a/src/main/java/model/Board/BoardFireFighterBehavior.java
+++ b/src/main/java/model/Board/BoardFireFighterBehavior.java
@@ -6,7 +6,7 @@ import model.Obstacle.MountainGenerator;
 import model.Obstacle.Road;
 import model.Obstacle.Terrain;
 import model.flammable.Fire;
-import model.flammable.FireMovements;
+import model.flammable.FireStrategy;
 import model.flammable.Rocky;
 import util.Position;
 import util.TargetStrategy;
@@ -24,10 +24,10 @@ public class BoardFireFighterBehavior implements BoardBehavior {
     private ElementFactory<Rocky> rockyFactory;
     private static  Map<Position, Terrain> terrainMap = new HashMap<>();
     private static int step;
-    static Movements fireMovements ;
-    static Movements fireFighterMovements;
-    static Movements cloudMovements;
-    static Movements motorizedMovements;
+    static Strategy fireStrategy;
+    static Strategy fireFighterStrategy;
+    static Strategy cloudStrategy;
+    static Strategy motorizedStrategy;
     private ElementGenerator moutainGenerator;
 
     public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory , ElementFactory<FireFighter> firefighterFactory,
@@ -35,19 +35,19 @@ public class BoardFireFighterBehavior implements BoardBehavior {
         this.step=0;
         this.neighbors = neighbors;
         this.rockyFactory=rockyFactory;
-        fireMovements=new FireMovements(fireFactory);
-        fireFighterMovements=new FireFighterMovements(firefighterFactory);
-        cloudMovements=new CloudMovements(cloudFactory);
-        motorizedMovements=new MotorizedMovements(motorizedFactory);
+        fireStrategy =new FireStrategy(fireFactory);
+        fireFighterStrategy =new FireFighterStrategy(firefighterFactory);
+        cloudStrategy =new CloudStrategy(cloudFactory);
+        motorizedStrategy =new MotorizedStrategy(motorizedFactory);
         moutainGenerator=new MountainGenerator();
     }
 
     public void initializeElements(int rowCount, int columnCount) {
-         fireMovements.initializeElement(rowCount,columnCount);
-         fireFighterMovements.initializeElement(rowCount,columnCount);
-         cloudMovements.initializeElement(rowCount,columnCount);
+         fireStrategy.initializeElement(rowCount,columnCount);
+         fireFighterStrategy.initializeElement(rowCount,columnCount);
+         cloudStrategy.initializeElement(rowCount,columnCount);
         // Pompiers motorisés
-        motorizedMovements.initializeElement(rowCount,columnCount);
+        motorizedStrategy.initializeElement(rowCount,columnCount);
         // Rocky
         rocky = new ArrayList<>();
         List<Rocky> rockies = rockyFactory.createElements(rowCount, columnCount);
@@ -65,7 +65,7 @@ public class BoardFireFighterBehavior implements BoardBehavior {
 
 
     public static void extinguish(Position position) {
-        fireMovements.getPositions().remove(position);
+        fireStrategy.getPositions().remove(position);
 
 
 
@@ -74,7 +74,7 @@ public class BoardFireFighterBehavior implements BoardBehavior {
 
 
     public Set<Position> getFirePositions() {
-        return (Set<Position>) fireMovements.getPositions();
+        return (Set<Position>) fireStrategy.getPositions();
     }
 
 
@@ -91,10 +91,10 @@ public class BoardFireFighterBehavior implements BoardBehavior {
 
     @Override
     public List<Position> updateToNextGeneration() {
-        List<Position> modifiedPositions = fireFighterMovements.updateElements();
-        modifiedPositions.addAll(fireMovements.updateElements());
-        modifiedPositions.addAll(cloudMovements.updateElements());
-        modifiedPositions.addAll(motorizedMovements.updateElements());
+        List<Position> modifiedPositions = fireFighterStrategy.updateElements();
+        modifiedPositions.addAll(fireStrategy.updateElements());
+        modifiedPositions.addAll(cloudStrategy.updateElements());
+        modifiedPositions.addAll(motorizedStrategy.updateElements());
         incrementStep();
         return modifiedPositions;
     }
@@ -103,10 +103,10 @@ public class BoardFireFighterBehavior implements BoardBehavior {
     public void reset() {
         this.step=0;
         // Vider toutes les positions stockées
-        fireMovements.getPositions().clear();
-        fireFighterMovements.getPositions().clear();
-        cloudMovements.getPositions().clear();
-        motorizedMovements.getPositions().clear();
+        fireStrategy.getPositions().clear();
+        fireFighterStrategy.getPositions().clear();
+        cloudStrategy.getPositions().clear();
+        motorizedStrategy.getPositions().clear();
         rocky.clear();
         terrainMap.clear();
 
@@ -123,10 +123,10 @@ public class BoardFireFighterBehavior implements BoardBehavior {
     public static void extinguishNearbyFires(Position firefighterPosition, List<Position> modifiedPositions) {
         List<Position> nearbyFires = getNeighbors().getOrDefault(firefighterPosition, Collections.emptyList())
                 .stream()
-                .filter(fireMovements.getPositions()::contains)
+                .filter(fireStrategy.getPositions()::contains)
                 .toList();
         for (Position fire : nearbyFires) {
-            fireMovements.getPositions().remove(fire);
+            fireStrategy.getPositions().remove(fire);
             modifiedPositions.add(fire);
             System.out.println("Feu éteint à : " + fire);
         }
@@ -142,12 +142,12 @@ public class BoardFireFighterBehavior implements BoardBehavior {
         }
 
         // Si la position est occupée par un feu et que le terrain n'est pas traversable par le feu
-        if(cloudMovements.getPositions().contains(position))
+        if(cloudStrategy.getPositions().contains(position))
         {
             return false;
         }
         // Si la position est une montagne, aucun élément ne peut la franchir sauf les nuages
-        if (terrainMap.get(position) != null && !cloudMovements.getPositions().contains(position)) {
+        if (terrainMap.get(position) != null && !cloudStrategy.getPositions().contains(position)) {
             return false;  // Impossible de franchir une montagne, sauf pour un nuage
         }
         if(rocky.contains(position))
@@ -231,18 +231,18 @@ public class BoardFireFighterBehavior implements BoardBehavior {
 
 
     public static Collection<Position> getFirefighterPositions() {
-        return fireFighterMovements.getPositions();
+        return fireFighterStrategy.getPositions();
     }
 
     public Collection<Position> getCloudPositions() {
-        return cloudMovements.getPositions();
+        return cloudStrategy.getPositions();
     }
 
     public List<Position> getMotorizedFighters() {
-        return (List<Position>) motorizedMovements.getPositions();
+        return (List<Position>) motorizedStrategy.getPositions();
     }
 
-    public static Movements getFireMovements() {
-        return fireMovements;
+    public static Strategy getFireMovements() {
+        return fireStrategy;
     }
 }
diff --git a/src/main/java/model/ExtinguishFire/CloudMovements.java b/src/main/java/model/ExtinguishFire/CloudStrategy.java
similarity index 95%
rename from src/main/java/model/ExtinguishFire/CloudMovements.java
rename to src/main/java/model/ExtinguishFire/CloudStrategy.java
index c5269e8..f65b43b 100644
--- a/src/main/java/model/ExtinguishFire/CloudMovements.java
+++ b/src/main/java/model/ExtinguishFire/CloudStrategy.java
@@ -1,17 +1,17 @@
 package model.ExtinguishFire;
 
 import model.ElementFactory;
-import model.Movements;
+import model.Strategy;
 import util.Position;
 
 import java.util.*;
 
 import static model.Board.BoardFireFighterBehavior.*;
 
-public class CloudMovements implements Movements {
+public class CloudStrategy implements Strategy {
     private  List<Position> cloudPositions;
     private final ElementFactory<Cloud> cloudFactory;
-     public CloudMovements(ElementFactory<Cloud> cloudFactory) {
+     public CloudStrategy(ElementFactory<Cloud> cloudFactory) {
         this.cloudPositions = new ArrayList<>();
         this.cloudFactory = cloudFactory;
     }
diff --git a/src/main/java/model/ExtinguishFire/FireFighterMovements.java b/src/main/java/model/ExtinguishFire/FireFighterStrategy.java
similarity index 95%
rename from src/main/java/model/ExtinguishFire/FireFighterMovements.java
rename to src/main/java/model/ExtinguishFire/FireFighterStrategy.java
index 91c2f78..fd60dbe 100644
--- a/src/main/java/model/ExtinguishFire/FireFighterMovements.java
+++ b/src/main/java/model/ExtinguishFire/FireFighterStrategy.java
@@ -1,7 +1,7 @@
 package model.ExtinguishFire;
 
 import model.ElementFactory;
-import model.Movements;
+import model.Strategy;
 import util.Position;
 
 import java.util.ArrayList;
@@ -11,10 +11,10 @@ import java.util.Set;
 
 import static model.Board.BoardFireFighterBehavior.*;
 
-public class FireFighterMovements implements Movements {
+public class FireFighterStrategy implements Strategy {
     private final ElementFactory<FireFighter> firefighterFactory;
     private  List<Position> firefighterPositions;
-    public FireFighterMovements(ElementFactory<FireFighter> firefighterFactory) {
+    public FireFighterStrategy(ElementFactory<FireFighter> firefighterFactory) {
         this.firefighterFactory = firefighterFactory;
         this.firefighterPositions = new ArrayList<>();
     }
diff --git a/src/main/java/model/ExtinguishFire/MotorizedMovements.java b/src/main/java/model/ExtinguishFire/MotorizedStrategy.java
similarity index 93%
rename from src/main/java/model/ExtinguishFire/MotorizedMovements.java
rename to src/main/java/model/ExtinguishFire/MotorizedStrategy.java
index f486f19..67e0dbf 100644
--- a/src/main/java/model/ExtinguishFire/MotorizedMovements.java
+++ b/src/main/java/model/ExtinguishFire/MotorizedStrategy.java
@@ -1,7 +1,7 @@
 package model.ExtinguishFire;
 
 import model.ElementFactory;
-import model.Movements;
+import model.Strategy;
 import util.Position;
 
 import java.util.ArrayList;
@@ -9,13 +9,12 @@ import java.util.Collection;
 import java.util.List;
 
 import static model.Board.BoardFireFighterBehavior.*;
-import static model.flammable.FireMovements.*;
 
-public class MotorizedMovements implements Movements {
+public class MotorizedStrategy implements Strategy {
     private final ElementFactory<MotorizedFireFighter> motorizedFactory;
     private List<Position> motorizedFighters;
 
-    public MotorizedMovements(ElementFactory<MotorizedFireFighter> motorizedFactory) {
+    public MotorizedStrategy(ElementFactory<MotorizedFireFighter> motorizedFactory) {
         this.motorizedFactory = motorizedFactory;
         this.motorizedFighters = new ArrayList<>();
     }
diff --git a/src/main/java/model/Movements.java b/src/main/java/model/Strategy.java
similarity index 89%
rename from src/main/java/model/Movements.java
rename to src/main/java/model/Strategy.java
index 0f1638a..83bf4c6 100644
--- a/src/main/java/model/Movements.java
+++ b/src/main/java/model/Strategy.java
@@ -5,7 +5,7 @@ import util.Position;
 import java.util.Collection;
 import java.util.List;
 
-public interface Movements {
+public interface Strategy {
     public List<Position> updateElements();
     public void initializeElement(int rowCount, int columnCount);
 
diff --git a/src/main/java/model/flammable/FireMovements.java b/src/main/java/model/flammable/FireStrategy.java
similarity index 93%
rename from src/main/java/model/flammable/FireMovements.java
rename to src/main/java/model/flammable/FireStrategy.java
index dc5c123..11518f3 100644
--- a/src/main/java/model/flammable/FireMovements.java
+++ b/src/main/java/model/flammable/FireStrategy.java
@@ -1,19 +1,19 @@
 package model.flammable;
 
 import model.ElementFactory;
-import model.Movements;
+import model.Strategy;
 import util.Position;
 
 import java.util.*;
 
 import static model.Board.BoardFireFighterBehavior.*;
 
-public class FireMovements implements Movements {
+public class FireStrategy implements Strategy {
     private final ElementFactory<Fire> fireFactory;
     private Set<Position> firePositions;
 
 
-    public FireMovements(ElementFactory<Fire> fireFactory) {
+    public FireStrategy(ElementFactory<Fire> fireFactory) {
         this.fireFactory = fireFactory;
         this.firePositions = new HashSet<>();
     }
-- 
GitLab