Skip to content
Snippets Groups Projects
Commit 2709f81d authored by MANSOUR Chadi's avatar MANSOUR Chadi
Browse files

changes

parent 1f81b8b7
No related branches found
No related tags found
No related merge requests found
Pipeline #40333 passed
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -4,3 +4,5 @@ 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.
Avant la prochaine seance nous allons corriger le code en sorte que ça fonctionne correctement
\ No newline at end of file
Project member :
Project members :
member 1 : Mansour Chadi
......
......@@ -15,6 +15,7 @@ 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)));
}
......@@ -23,20 +24,25 @@ public class FireManager {
List<Position> newFires = new ArrayList<>();
if (turnCounter % 2 == 0) {
for (Position fire : firePositions) {
for (Position neighbor : neighbors.get(fire)) {
List<Position> neighborList = neighbors.get(fire);
if (neighborList != null){
for (Position neighbor : neighborList) {
if (!firePositions.contains(neighbor)) {
newFires.add(neighbor);
}
}
}
}
}
firePositions.addAll(newFires);
turnCounter++;
return newFires;
}
public void extinguish(Position position){
if (firePositions.contains(position)) {
firePositions.remove(position);
}
}
public Set<Position> getFirePositions() {
return firePositions;
}
......
......@@ -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;
}
}
......@@ -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) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment