Пробовал с помощью дебаггера приравнивать координаты головы змеи и ее других частей тела - коллизия работает, но валидатор почему-то не пропускает
public boolean checkCollision(GameObject obj){
for(GameObject go: snakeParts){
if(go.x == obj.x || go.y == obj.y){
return true;
}
}
return false;
}
public void move(Apple apple) {
GameObject newHead = createNewHead();
if (checkCollision(newHead)) {
isAlive = false;
return;
}
if (newHead.x == apple.x && newHead.y == apple.y) {
apple.isAlive = false;
snakeParts.add(0, newHead);
}
else if ((newHead.x < 0 || (newHead.x >= SnakeGame.WIDTH) || (newHead.y < 0 || (newHead.y >= SnakeGame.HEIGHT)))) {
this.isAlive = false;
} else {
snakeParts.add(0, newHead);
removeTail();
}
}package com.javarush.games.snake;
import com.javarush.engine.cell.*;
/**
* @project JavaRushTasks
* @autor Vector13 on 06.08.2020
*/
public class Apple extends GameObject {
public boolean isAlive = true;
private static final String APPLE_SIGN = "\uD83C\uDF4E";
public Apple(int x, int y){
super(x,y);
}
public void draw(Game game){
game.setCellValueEx(x,y, Color.NONE, APPLE_SIGN, Color.RED, 75);
}
}