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