From 1d51f1760b3a79d4a0ac10146342b07e755af9b6 Mon Sep 17 00:00:00 2001
From: a23022716 <celia.arezki.1@etu.univ-amu.fr>
Date: Fri, 22 Nov 2024 08:47:12 +0100
Subject: [PATCH] Prevent firefighters from crossing a mountain.

---
 src/main/java/util/Strategy.java       | 4 +++-
 src/main/java/util/TargetStrategy.java | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/main/java/util/Strategy.java b/src/main/java/util/Strategy.java
index 61c8151..4ca44e7 100644
--- a/src/main/java/util/Strategy.java
+++ b/src/main/java/util/Strategy.java
@@ -1,9 +1,11 @@
 package util;
 
+import view.ViewElement;
+
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
 public interface Strategy {
-    Position neighborClosestToTarget(Position position, Collection<Position> targets, Map<Position, List<Position>> neighbors);
+    Position neighborClosestToTarget(Position position, Collection<Position> targets, Map<Position, List<Position>> neighbors, ViewElement[][] grid);
 }
diff --git a/src/main/java/util/TargetStrategy.java b/src/main/java/util/TargetStrategy.java
index 78ccadc..7a2b051 100644
--- a/src/main/java/util/TargetStrategy.java
+++ b/src/main/java/util/TargetStrategy.java
@@ -1,6 +1,7 @@
 package util;
 
 import util.Position;
+import view.ViewElement;
 
 import java.util.*;
 
@@ -13,7 +14,7 @@ public class TargetStrategy implements Strategy{
      * @return the position next to the current position that is on the path to the closest target.
      */
     public Position neighborClosestToTarget(Position position, Collection<Position> targets,
-                                          Map<Position, List<Position>> neighbors) {
+                                          Map<Position, List<Position>> neighbors, ViewElement[][] grid) {
         Set<Position> seen = new HashSet<Position>();
         HashMap<Position, Position> firstMove = new HashMap<Position, Position>();
         Queue<Position> toVisit = new LinkedList<Position>(neighbors.get(position));
@@ -21,6 +22,7 @@ public class TargetStrategy implements Strategy{
             firstMove.put(initialMove, initialMove);
         while (!toVisit.isEmpty()) {
             Position current = toVisit.poll();
+            if (grid[current.row()][current.column()] == ViewElement.MOUNTAIN) continue;
             if (targets.contains(current))
                 return firstMove.get(current);
             for (Position adjacent : neighbors.get(current)) {
-- 
GitLab