Skip to content
Snippets Groups Projects
Commit 9283d2e7 authored by Yanis O's avatar Yanis O
Browse files

[Fix] Les pompiers ne peuvent supprimer que les feux

parent 5aad3360
Branches
No related tags found
No related merge requests found
Pipeline #39085 failed
......@@ -28,7 +28,7 @@ public class Fire implements Entity{
List<Position> positions = PositionUtil.generateAdjacentPositions(position, board);
for(Position p : positions){
if(b.getStates(p).isEmpty()){
if(b.getStates(p).getMaxAge() < b.getStepNumber()){
if(b.getStates(p).getMaxAge() < b.getStepNumber() && PositionUtil.getManhattanDistance(position, p) == 1){
board.addEntityAtSquare(new Fire(p, board), p);
}
......
......@@ -41,7 +41,6 @@ public class FireFighter implements Entity{
if (nearestFirePos != null && !nearestFirePos.equals(position)) {
// Trouver la meilleure position pour se rapprocher du feu
Position nextPos = getNextPositionTowards(position, nearestFirePos, b);
if (nextPos != null) {
// Mettre à jour la position du pompier
b.clearCase(position); // Vider l'ancienne case
......@@ -62,11 +61,15 @@ public class FireFighter implements Entity{
private List<Position> extinguish(List<Position> adjacentPositions, Board<Square> b) {
List<Position> extinguishedPositions = new ArrayList<>();
for (Position p : adjacentPositions) {
Square s = (Square)b.getStates(p);
if (s.getEntities().stream().anyMatch(e -> e instanceof Fire)) {
b.clearCase(p);
extinguishedPositions.add(p); // Ajouter la position où le feu a été éteint
b.getStates(p).getEntities().removeIf(element -> element instanceof Fire);
List<Entity> entities = b.getStates(p).getEntities();
for(Entity e : entities){
if(e instanceof EmptyEntity){
e.setAge(age+1);
}
}
extinguishedPositions.add(p); // Ajouter la position où le feu a été éteint
}
return extinguishedPositions;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment