From 8e3df2a23366f6d5d033652d9bee38406cfaf629 Mon Sep 17 00:00:00 2001
From: Sarah CHERCHEM <sarahcherchem@gmail.com>
Date: Thu, 21 Nov 2024 22:07:24 +0100
Subject: [PATCH] Create the class MotorizedStrategy

---
 src/main/java/util/MotorizedStrategy.java | 22 ++++++++++++++++++++++
 src/main/java/util/TargetStrategy.java    |  4 ++--
 2 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/util/MotorizedStrategy.java

diff --git a/src/main/java/util/MotorizedStrategy.java b/src/main/java/util/MotorizedStrategy.java
new file mode 100644
index 0000000..6f5b092
--- /dev/null
+++ b/src/main/java/util/MotorizedStrategy.java
@@ -0,0 +1,22 @@
+package util;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+public class MotorizedStrategy implements Strategy{
+    @Override
+    public Position neighborClosestToTarget(Position position, Collection<Position> targets, Map<Position, List<Position>> neighbors) {
+        TargetStrategy normalStrategy = new TargetStrategy();
+        Position firstMove = normalStrategy.neighborClosestToTarget(position, targets, neighbors);
+
+        // Si un premier mouvement est trouvé, on simule un second déplacement
+        if (firstMove != null && neighbors.containsKey(firstMove)) {
+            return normalStrategy.neighborClosestToTarget(firstMove, targets, neighbors);
+        }
+
+        return position;
+    }
+
+
+}
diff --git a/src/main/java/util/TargetStrategy.java b/src/main/java/util/TargetStrategy.java
index 5e2e743..78ccadc 100644
--- a/src/main/java/util/TargetStrategy.java
+++ b/src/main/java/util/TargetStrategy.java
@@ -4,7 +4,7 @@ import util.Position;
 
 import java.util.*;
 
-public class TargetStrategy {
+public class TargetStrategy implements Strategy{
 
 
     /**
@@ -12,7 +12,7 @@ public class TargetStrategy {
      * @param targets positions that are targeted.
      * @return the position next to the current position that is on the path to the closest target.
      */
-    public Position neighborClosestToFire(Position position, Collection<Position> targets,
+    public Position neighborClosestToTarget(Position position, Collection<Position> targets,
                                           Map<Position, List<Position>> neighbors) {
         Set<Position> seen = new HashSet<Position>();
         HashMap<Position, Position> firstMove = new HashMap<Position, Position>();
-- 
GitLab