added obstacles recognition
This commit is contained in:
parent
1141ceb4ff
commit
510b2ed752
@ -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…
x
Reference in New Issue
Block a user