Browse Source

added obstacles recognition

main
Illia Soloviov 3 months ago
parent
commit
510b2ed752
1 changed files with 16 additions and 4 deletions
  1. 16
    4
      src/SnakeBot.java

+ 16
- 4
src/SnakeBot.java View File

@@ -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();

Loading…
Cancel
Save