JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/почему не проходит 2 пункт?
Egor Kolesov
16 уровень
  • 10.05.2020
  • 346просмотров
  • 2комментариев

почему не проходит 2 пункт?

Вопрос по задаче Змейка(part10)
Games,  0 уровень,  1 лекция
Решен


Теперь нужно скомбинировать работу методов createNewHead() и removeTail(). Удобно сделать это в методе move().

Добавь проверку на выход змейки за пределы игрового поля. Если новая голова вышла за пределы игрового поля, установи состояние змейки в "неживая".

После передвижения змейки нужно очищать игровое поле от уже несуществующих ее элементов. Для этого в методе drawScene() нужно не только изменять цвет ячеек, но и устанавливать в их значении пустую строку.

Требования:
  • В методе move() класса Snake должен вызываться метод createNewHead().
  • В методе move() результат вызова метода createNewHead() необходимо добавить в snakeParts на позицию с индексом 0.
  • В методе move() класса Snake после создания новой головы змеи должен вызываться метод removeTail().
  • После выполнения метода move() длина змейки должна остаться прежней (добавилась голова, но удалился хвост).
  • В методе move(), если метод createNewHead() вернул элемент, у которого координаты находятся вне игрового поля, необходимо установить полю isAlive значение false и больше ничего не делать.
  • В классе SnakeGame в методе drawScene() необходимо заменить вызов метода setCellColor(int, int, Color) на вызов метода setCellValueEx(int, int, Color, String) с параметрами: x, y, цвет (например, Color.DARKSEAGREEN) и пустая строка.
...
package com.javarush.games.snake; import com.javarush.engine.cell.*; import com.javarush.engine.cell.Color; import com.javarush.engine.cell.Game; public class Apple extends GameObject { private final static String APPLE_SIGN = "\uD83C\uDF4E"; public boolean isAlive=true; public Apple(int x, int y) { super(x, y); } public void draw(Game game){ game.setCellValueEx(x, y, Color.NONE, APPLE_SIGN, Color.GREEN,75); } }
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Vasili
Уровень 26
10 мая 2020, 10:45
Может потому что исключил кординаты с 0
if(newHead.x>=SnakeGame.WIDTH||newHead.x<=0||newHead.y>=SnakeGame.HEIGHT||newHead.y<=0)
+1
Egor KolesovРаботает в Та Колесов
10 мая 2020, 10:51
блааа, спасибо!
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush