Не проходит задача 10 в игре Змейка.
Требование:
В методе move(), если метод createNewHead() вернул элемент, у которого координаты находятся вне игрового поля, необходимо установить полю isAlive значение false и больше ничего не делать.
Пишет так:
Проверь, что присваиваешь полю isAlive значение false, если метод createNewHead() вернул элемент, который находится вне игрового поля.
Вот, собственно, мой код метода move() в классе Snake:
public void move() {
GameObject newHead = createNewHead();
if (newHead.x < 0 || newHead.x >= SnakeGame.WIDTH
|| newHead.y < 0 || newHead.y >= SnakeGame.HEIGHT) {
isAlive = false;
} else {
snakeParts.add(0, newHead);
removeTail();
}
}
package com.javarush.games.snake;
import com.javarush.engine.cell.*;
public class SnakeGame extends Game {
public static final int WIDTH = 15;
public static final int HEIGHT = 15;
private Snake snake;
private int turnDelay;
@Override
public void initialize() {
setScreenSize(WIDTH, HEIGHT);
createGame();
}
private void createGame() {
snake = new Snake(WIDTH / 2, HEIGHT / 2);
turnDelay = 300;
drawScene();
setTurnTimer(turnDelay);
}
private void drawScene() {
for (int x = 0; x < HEIGHT; ++x) {
for (int y = 0; y < WIDTH; ++y) {
setCellValueEx(x, y, Color.DARKSEAGREEN, "");
}
}
snake.draw(this);
}
@Override
public void onTurn(int i) {
snake.move();
drawScene();
}
}