diff --git a/src/main/java/util/Strategy.java b/src/main/java/util/Strategy.java
index 61c8151f6a2f58f4f90803af0498006c6bf7733d..4ca44e7aa30160c942c83f6abe8a44e1b44c509e 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 78ccadc73aa1e14f05a3be62b0b4cd1ed8627080..7a2b0519452f37629da82619457c4c1739596eba 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)) {