From 737e8785aebacd5b867e25f37fcf1c6552d51c49 Mon Sep 17 00:00:00 2001 From: Celia AREZKI <celia.arezki.1@etu.univ-amu.fr> Date: Thu, 21 Nov 2024 21:52:46 +0100 Subject: [PATCH] MotorizedFirefighter : add the methode updateFireFighter --- src/main/java/model/MotorizedFirefighter.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/model/MotorizedFirefighter.java b/src/main/java/model/MotorizedFirefighter.java index cee837e..e40a80c 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; + } } -- GitLab