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