diff --git a/src/SnakeBot.java b/src/SnakeBot.java index 90a1f87..747a2d5 100644 --- a/src/SnakeBot.java +++ b/src/SnakeBot.java @@ -52,10 +52,13 @@ public class SnakeBot extends Bot{ int leftIndex = centerIndex - 1; int rightIndex = centerIndex + 1; - frontIsBlocked = view.data.charAt(frontIndex) == '*'; - backIsBlocked = view.data.charAt(backIndex) == '*'; - leftIsBlocked = view.data.charAt(leftIndex) == '*'; - rightIsBlocked = view.data.charAt(rightIndex) == '*'; + char[] obstacles = {'#', '~', 'X', '*'}; + + frontIsBlocked = containsChar(obstacles, view.data.charAt(frontIndex)); + backIsBlocked = containsChar(obstacles, view.data.charAt(backIndex)); + leftIsBlocked = containsChar(obstacles, view.data.charAt(leftIndex)); + rightIsBlocked = containsChar(obstacles, view.data.charAt(rightIndex)); + trapped = frontIsBlocked && backIsBlocked && leftIsBlocked && rightIsBlocked; if (trapped) { @@ -65,6 +68,15 @@ public class SnakeBot extends Bot{ } } + private boolean containsChar(char[] array, char target) { + for (char c : array) { + if (c == target) { + return true; + } + } + return false; + } + private char checkMove(char move) throws Exception { if (frontIsBlocked) { resetMovesSequence();