From 2709f81d62200b85094206b9c5d362a2e6c40385 Mon Sep 17 00:00:00 2001
From: m19023837 <chadi.mansour@etu.univ-amu.fr>
Date: Fri, 22 Nov 2024 12:13:57 +0100
Subject: [PATCH] changes

---
 .../executionHistory/executionHistory.lock    | Bin 17 -> 17 bytes
 .gradle/8.10.2/fileHashes/fileHashes.lock     | Bin 17 -> 17 bytes
 .../buildOutputCleanup.lock                   | Bin 17 -> 17 bytes
 Project Repports/Rapport3.md                  |   4 +++-
 README.md                                     |   2 +-
 src/main/java/model/FireManager.java          |  22 +++++++++++-------
 src/main/java/model/FirefighterManager.java   |  11 ++++++++-
 .../SimpleFirefighterMovementStrategy.java    |   2 +-
 8 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock
index 00af7ad92d473c28e75df256de7082d1905d37a0..8aca32139fab07c3188cba31af7facedf5b5849d 100644
GIT binary patch
literal 17
TcmZRsO8#f>m)m%p0RkidGe876

literal 17
TcmZRsO8#f>m)m%p0Rp%HGcp7#

diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock
index eec55f022194ea4668a5592c880843ef4401710c..e49212765c741797bec045b9467eb5e66ac21562 100644
GIT binary patch
literal 17
UcmZRUE=)E0=%H|g0RmP504LQ0?f?J)

literal 17
TcmZRUE=)E0=%H|g0RjpEC!7Pd

diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index e1618ed68daabe25ab487b4d5282bfbda4d972e2..267adf260927eb5a89b797caca8536fd39ec8438 100644
GIT binary patch
literal 17
UcmZR+;bwJ3Kx+R{1_($305EX`KmY&$

literal 17
UcmZR+;bwJ3Kx+R{1_;mv05CiR3jhEB

diff --git a/Project Repports/Rapport3.md b/Project Repports/Rapport3.md
index a86bafd..82d4105 100644
--- a/Project Repports/Rapport3.md	
+++ b/Project Repports/Rapport3.md	
@@ -3,4 +3,6 @@ nous allons maintenant travailler pour fixer ces erruers
 
 Nous avons Modifier les classes Manager afin de fixer les erreurs qui parvenait lors de l'éxécution du programme
 cependant il faudrait ajuster encore le code comme les firefighters sont entrain de mourir ce qui ne dervrais
-pas ce passer.
\ No newline at end of file
+pas ce passer.
+
+Avant la prochaine seance nous allons corriger le code en sorte que ça fonctionne correctement
\ No newline at end of file
diff --git a/README.md b/README.md
index b527db6..07b93ef 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Project member : 
+Project members : 
 
 member 1 : Mansour Chadi
 
diff --git a/src/main/java/model/FireManager.java b/src/main/java/model/FireManager.java
index 6b47541..e843edf 100644
--- a/src/main/java/model/FireManager.java
+++ b/src/main/java/model/FireManager.java
@@ -15,27 +15,33 @@ public class FireManager {
         this.fireSpreadStrategy = fireSpread;
     }
     public void initializeFires(int fireCount, int rowCount, int columnCount, Random random) {
+        firePositions.clear();
         for (int i = 0; i < fireCount; i++) {
             firePositions.add(new Position(random.nextInt(rowCount), random.nextInt(columnCount)));
         }
     }
-        public List<Position> fireSpread(Map<Position, List<Position>> neighbors){
-            List<Position> newFires = new ArrayList<>();
-            if (turnCounter % 2 == 0) {
-                for (Position fire : firePositions) {
-                    for (Position neighbor : neighbors.get(fire)) {
+    public List<Position> fireSpread(Map<Position, List<Position>> neighbors){
+        List<Position> newFires = new ArrayList<>();
+        if (turnCounter % 2 == 0) {
+            for (Position fire : firePositions) {
+                List<Position> neighborList = neighbors.get(fire);
+                if (neighborList != null){
+                    for (Position neighbor : neighborList) {
                         if (!firePositions.contains(neighbor)) {
                             newFires.add(neighbor);
                         }
                     }
                 }
             }
-            firePositions.addAll(newFires);
+        }
+        firePositions.addAll(newFires);
         turnCounter++;
         return newFires;
+    }
+    public void extinguish(Position position){
+        if (firePositions.contains(position)) {
+            firePositions.remove(position);
         }
-        public void extinguish(Position position){
-        firePositions.remove(position);
     }
     public Set<Position> getFirePositions() {
         return firePositions;
diff --git a/src/main/java/model/FirefighterManager.java b/src/main/java/model/FirefighterManager.java
index 85f97fa..5a7422f 100644
--- a/src/main/java/model/FirefighterManager.java
+++ b/src/main/java/model/FirefighterManager.java
@@ -22,10 +22,16 @@ public class FirefighterManager {
 
         for (int i = 0; i < firefighterPositions.size(); i++) {
             Position firefighter = firefighterPositions.get(i);
+            for (Position neighbor : neighbors.get(firefighter)) {
+                if (firePositions.contains(neighbor)) {
+                    firePositions.remove(neighbor); // Extinguish fire at the neighbor
+                    modifiedPositions.add(neighbor); // Track extinguished fire position
+                }
+            }
 
             Position closestFire = findClosestFire(firefighter, firePositions);
 
-            if (closestFire != null && !neighbors.get(firefighter).contains(closestFire)) {
+            if (closestFire != null ) {
                 Position newPosition = moveTowards(firefighter, closestFire);
                 firefighterPositions.set(i, newPosition);
                 modifiedPositions.add(newPosition);
@@ -79,4 +85,7 @@ public class FirefighterManager {
 
         return firefighter;
     }
+
+
+
 }
diff --git a/src/main/java/model/SimpleFirefighterMovementStrategy.java b/src/main/java/model/SimpleFirefighterMovementStrategy.java
index b76d2c1..8fb5268 100644
--- a/src/main/java/model/SimpleFirefighterMovementStrategy.java
+++ b/src/main/java/model/SimpleFirefighterMovementStrategy.java
@@ -20,7 +20,7 @@ public class SimpleFirefighterMovementStrategy implements FirefighterMovementStr
             }
         }
 
-        return closestFire != null ? closestFire : current;
+        return closestFire != null && !closestFire.equals(current) ? closestFire : current;
     }
 
     private int calculateDistance(Position a, Position b) {
-- 
GitLab