diff --git a/src/main/java/model/MotorizedFirefighter.java b/src/main/java/model/MotorizedFirefighter.java index cee837e7654f7c42ca1dddaa0343f193a74c69e6..e40a80c1dc7f611499c18d31cb14f1c3beb2678c 100644 --- a/src/main/java/model/MotorizedFirefighter.java +++ b/src/main/java/model/MotorizedFirefighter.java @@ -1,4 +1,32 @@ package model; -public class MotorizedFirefighter { +import util.Position; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class MotorizedFirefighter extends FirefighterManager { + public MotorizedFirefighter(List<Position> firefighterPositions) { + super(firefighterPositions); + } + + @Override + public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors) { + List<Position> modifiedPositions = new ArrayList<>(); + for (Position firefighterPosition : firefighterPositions) { + // Déplacement motorisé, on se déplace de deux cases + Position newFirefighterPosition = moveToTarget(firefighterPosition, fireManager.getFirePosition(), neighbors); + setFirefighterPosition(firefighterPosition, newFirefighterPosition); + + // Vérifier si un feu est à la nouvelle position et l'éteindre + if (fireManager.isOnFire(newFirefighterPosition)) { + extinguishFire(newFirefighterPosition); + } + + modifiedPositions.add(firefighterPosition); + modifiedPositions.add(newFirefighterPosition); + } + return modifiedPositions; + } }