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