Skip to content
Snippets Groups Projects
Commit 15bcbac0 authored by AREZKI Celia's avatar AREZKI Celia
Browse files

Modify the methode updateFires and updateFireFighters

parent 6e4fed7d
No related branches found
No related tags found
No related merge requests found
Pipeline #39371 failed
......@@ -6,9 +6,12 @@ import java.util.*;
public class FireManager implements FireBehavior, FireProperties{
private Set<Position> firePositions;
private FirefighterManager firefighterManager;
public FireManager(Set<Position> firePositions) {
public FireManager(Set<Position> firePositions,FirefighterManager firefighterManager) {
this.firePositions = firePositions;
this.firefighterManager=firefighterManager;
}
// Initialize fire positions randomly
......@@ -22,10 +25,11 @@ public class FireManager implements FireBehavior, FireProperties{
@Override
public List<Position> updateFires(int step, Map<Position, List<Position>> neighbors) {
List<Position> newFirePositions = new ArrayList<>();
if (step % 2 == 0) { // Fires spread every other step
if (step % 2 == 0) { // Le feu se propage tous les deux pas
for (Position fire : firePositions) {
for (Position neighbor : neighbors.get(fire)) {
if (!firePositions.contains(neighbor)) {
// Vérifier si le voisin est déjà en feu ou s'il y a un pompier
if (!firePositions.contains(neighbor) && !firefighterManager.getFirefighterPositions().contains(neighbor)) {
newFirePositions.add(neighbor);
}
}
......@@ -34,6 +38,8 @@ public class FireManager implements FireBehavior, FireProperties{
}
return newFirePositions;
}
// Extinguish a fire at a specific position
@Override
public void extinguishFire(Position position) {
......@@ -47,4 +53,5 @@ public class FireManager implements FireBehavior, FireProperties{
@Override
public Set<Position> getFirePosition()
{ return new HashSet<>(firePositions);}
}
......@@ -28,8 +28,9 @@ public class FirefighterBoard implements BoardBehavior<List<ModelElement>> ,Boa
initializePositions();
initializeNeighbors();
// Initialize manager
this.fireManager = new FireManager(new HashSet<>());
this.firefighterManager = new FirefighterManager(new ArrayList<>(), fireManager);
this.fireManager = new FireManager(new HashSet<>(),new FirefighterManager(new ArrayList<>()));
this.firefighterManager = new FirefighterManager(new ArrayList<>());
this.firefighterManager.setFireManager(fireManager);
initializeElements();
}
......
......@@ -12,11 +12,14 @@ public class FirefighterManager implements FirefighterBehavior, FirefighterPrope
private List<Position> firefighterPositions;
FireManager fireManager;
public FirefighterManager(List<Position> firefighterPositions, FireManager fireManager) {
this.firefighterPositions = firefighterPositions;
public void setFireManager(FireManager fireManager) {
this.fireManager = fireManager;
}
public FirefighterManager(List<Position> firefighterPositions) {
this.firefighterPositions = firefighterPositions;
}
@Override
public Position moveToTarget(Position currentPosition, Collection<Position> firePositions, Map<Position, List<Position>> neighbors) {
TargetStrategy targetStrategy = new TargetStrategy();
......@@ -48,8 +51,10 @@ public class FirefighterManager implements FirefighterBehavior, FirefighterPrope
Position newFirefighterPosition = moveToTarget(firefighterPosition, fireManager.getFirePosition(), neighbors);
setFirefighterPosition(firefighterPosition, newFirefighterPosition);
// Extinction du feu
// Vérifier si un feu est à la nouvelle position et l'éteindre
if (fireManager.isOnFire(newFirefighterPosition)) {
extinguishFire(newFirefighterPosition);
}
modifiedPositions.add(firefighterPosition);
modifiedPositions.add(newFirefighterPosition);
......@@ -57,4 +62,5 @@ public class FirefighterManager implements FirefighterBehavior, FirefighterPrope
return modifiedPositions;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment