Игра змейка (18/20)

  • 3
  • Недоступна
Давай поправим управление. Значения поля direction могут меняться только на валидные в данный момент: LEFT, RIGHT, UP, DOWN.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (42)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Виталий
26 уровень, Санкт-Петербург
12 апреля, 19:50
к старым условиям прикрутил дополнительное через && и всё заработало
Wally Dator
22 уровень, Чехов
3 января, 20:01
Реализовал через SWITCH
switch (direction) {
    case UP:
        if (snakeParts.get(0).x == snakeParts.get(1).x) {
            return;
        }
        if (this.direction == Direction.DOWN) {
            return;
        }
        break;
И да, координаты перепутаны
Никита Никитенко Сыч в Сычевальне
8 декабря 2020, 22:54
опять они перепутали X c Y
Don Fear
41 уровень, Екатеринбург
9 ноября 2020, 09:07
"Дети, теперь мы все дружно учимся изобретать костыли!"
ProgX
18 уровень, Саратов
16 октября 2020, 17:47
Я добавил новое правило и удалил старое правило. Так делать нельзя, валидатор обиделся.
Verhun Kyrylo
27 уровень
9 октября 2020, 10:59
Да, действительно, в условии перепутаны примеры и для LEFT, RIGHT нужно проверять y, а не x. Тогда проходит валидацию. Ну и условие походу подано так что бы подумать. Сделал проверку таким образом
direction == Direction.LEFT && this.direction != Direction.RIGHT && snakeParts.get(0).y != snakeParts.get(1).y
Останое по аналогии. Валидатор пропустил, змейка ездит как нужно.
Inzevision
22 уровень, Киев
2 сентября 2020, 16:58
Таки да, в условии х и у перепутали местами. Тут такая логика, если тело змейки горизонтально, то клавиши в лево/право игнорировать. Та же логика с вертикальным расположением змейки.
NEURO MANT
28 уровень, Белая Церковь
28 августа 2020, 09:36
Сделал как написано в задании. Валидатор пропустил и змейка работает правильно(больше разворачивается быстрым нажатием клавиш). Остался один вопрос: как это работает? Я не даю методу установить новое направление, если я уже задал направление, но змейка еще не повернула? Пока это единственное логическое обьяснение
Алексей Кузнецов
28 уровень, Калининград
30 июля 2020, 22:54
Товарищи, решение элементарное. Разработчики в условии перепутали x и y. Т.Е. при нажатии влево или вправо идет проверка что бы змейка не была направлена горизонтально, т.е. что у ее 0 и 1 элементов не совпадают y. А в условии написан x. Соответственно, в вертикали такая же беда.
NEURO MANT
28 уровень, Белая Церковь
28 августа 2020, 09:43
нет не перепутали
Станислав
19 уровень, Мариуполь
21 апреля 2020, 15:31
Хорошее задание, еще на предыдущих этапах смутило то, что мы исключили прямой разворот на 180, но до сих пор можно было разворачивать путем быстрого нажатия двух направлений, но валидатор принимал, так что оставлял эту ошибку на потом, как оказалось не зря🙃