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

FirefighterManager : add the methode updateFireFighters

parent 54d37d87
Branches
No related tags found
No related merge requests found
...@@ -10,4 +10,5 @@ public interface FirefighterBehavior { ...@@ -10,4 +10,5 @@ public interface FirefighterBehavior {
Position moveToTarget(Position currentPosition, Collection<Position> firePositions, Position moveToTarget(Position currentPosition, Collection<Position> firePositions,
Map<Position, List<Position>> neighbors); // Déplacer un pompier vers une cible. Map<Position, List<Position>> neighbors); // Déplacer un pompier vers une cible.
void extinguishFire(Position firePosition); // Éteindre un feu à une position donnée. void extinguishFire(Position firePosition); // Éteindre un feu à une position donnée.
public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors)
} }
...@@ -96,12 +96,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> { ...@@ -96,12 +96,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
return columnCount; return columnCount;
} }
public List<Position> updateToNextGeneration() { /*public List<Position> updateToNextGeneration() {
List<Position> modifiedPositions = updateFirefighters(); List<Position> modifiedPositions = updateFirefighters();
modifiedPositions.addAll(updateFires()); modifiedPositions.addAll(updateFires());
step++; step++;
return modifiedPositions; return modifiedPositions;
} }*/
private List<Position> updateFires() { private List<Position> updateFires() {
return fireManager.updateFires(step,neighbors); return fireManager.updateFires(step,neighbors);
......
...@@ -3,6 +3,7 @@ package model; ...@@ -3,6 +3,7 @@ package model;
import util.Position; import util.Position;
import util.TargetStrategy; import util.TargetStrategy;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -37,4 +38,23 @@ public class FirefighterManager implements FirefighterBehavior, FirefighterPrope ...@@ -37,4 +38,23 @@ public class FirefighterManager implements FirefighterBehavior, FirefighterPrope
firefighterPositions.remove(oldPosition); firefighterPositions.remove(oldPosition);
firefighterPositions.add(newPosition); firefighterPositions.add(newPosition);
} }
@Override
public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors) {
List<Position> modifiedPositions = new ArrayList<>();
List<Position> firefighterPositionsCopy = new ArrayList<>(firefighterPositions);
for (Position firefighterPosition : firefighterPositionsCopy) {
// Déplacement des pompiers
Position newFirefighterPosition = moveToTarget(firefighterPosition, fireManager.getFirePosition(), neighbors);
setFirefighterPosition(firefighterPosition, newFirefighterPosition);
// Extinction du feu
extinguishFire(newFirefighterPosition);
modifiedPositions.add(firefighterPosition);
modifiedPositions.add(newFirefighterPosition);
}
return modifiedPositions;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment