added obstacles recognition

This commit is contained in:
Illia Soloviov 2024-02-01 16:02:41 +01:00
parent 1141ceb4ff
commit 510b2ed752

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