From a0a14772cf41e4b8f2269cbfcd58d661f1efb3ef Mon Sep 17 00:00:00 2001 From: Celia AREZKI <celia.arezki.1@etu.univ-amu.fr> Date: Thu, 21 Nov 2024 21:53:58 +0100 Subject: [PATCH] MotorizedFirefighter : add the methode moveToTarget --- src/main/java/model/MotorizedFirefighter.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/model/MotorizedFirefighter.java b/src/main/java/model/MotorizedFirefighter.java index e40a80c..71edb72 100644 --- a/src/main/java/model/MotorizedFirefighter.java +++ b/src/main/java/model/MotorizedFirefighter.java @@ -2,11 +2,10 @@ package model; import util.Position; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; public class MotorizedFirefighter extends FirefighterManager { + private Random random =new Random(); public MotorizedFirefighter(List<Position> firefighterPositions) { super(firefighterPositions); } @@ -29,4 +28,22 @@ public class MotorizedFirefighter extends FirefighterManager { } return modifiedPositions; } + @Override + public Position moveToTarget(Position currentPosition, Collection<Position> firePositions, Map<Position, List<Position>> neighbors) { + // Logique spécifique pour le déplacement motorisé (deux cases) + List<Position> possibleMoves = new ArrayList<>(); + for (Position neighbor : neighbors.get(currentPosition)) { + for (Position secondNeighbor : neighbors.get(neighbor)) { + if (!secondNeighbor.equals(currentPosition)) { + possibleMoves.add(secondNeighbor); + } + } + } + + if (!possibleMoves.isEmpty()) { + return possibleMoves.get(random.nextInt(possibleMoves.size())); + } else { + return currentPosition; + } + } } -- GitLab