Объясните ,пожалуйста , почему когда я выполняю первое требование , у меня защитывается за два выполненных требования ? а если я выполню 3 и 4 требования у меня тогда пишет что все не правильно
Никита Зинкевич
29 уровень
Помогите
Обсуждается
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
VIKTOR NEZHELSKIYExpert
6 марта 2019, 21:50
В этом задании в заблуждение вводит тот факт, что в метод if () проверки надо брать не direction, который в аргументе метода, как это подсказывает обычная практика проверок, а именно поле класса Snake, т.е. this.direction.
Проверки эти никак не проверяют аргумент direction и не спасают от движения в обратную сторону. Правильнее проверить новое направление, если движение идет горизонтально, то изменять направление должно только вверх/вниз, а если движение по вертикали, то изменять движение может только направление влево/вправо.
Но для прохождения валидатора на этом шаге надо смириться и делать так как задано.
+4
Дмитрий Злобин
13 декабря 2018, 13:27
Вопрос аналогичен, только у меня условия написаны по-другому:
Вроде всё соответствует условиям, а валидацией и не пахнет. 0
Roman Pryshchepa Java Developer Expert
13 декабря 2018, 15:53
А почему пропал остальной функционал метода setDirection ?
+1
Дмитрий Злобин
13 декабря 2018, 17:44
Какой остальной? там была только проверка на то, чтобы не изменить направление змейки на противоположное. Как по мне, чтобы это проверялось как раз достаточно условия из этой задачи. Может быть я не прав?
0
Дмитрий Злобин
14 декабря 2018, 02:27
Зато если сделать вот так:
Валидатор схавал и не поперхнулся. Как мне видится есть 2 проблемы:
- некорректное условие. Поясню. Например условие
Есло у сегмнтов 0 и 1 одинаковые координаты х, то змейка движется по вертикали, т.е. вверх или вниз, соответственно при нажатии на LEFT ДОЛЖНО меняться направление.
Поправьте меня если я не прав.
- что-то не то с валидатором, т.к. в коде обрабатывается только 2 нажатия. 0
Roman Pryshchepa Java Developer Expert
20 декабря 2018, 15:40
Метод setDirection(Direction) класса Snake не должен ничего делать, если значение поля direction равно LEFT, и сегменты змейки из snakeParts с индексами 0 и 1 имеют одинаковое значение координаты x.
Если координата "x" у первых двух сегментов одинаковая, то это означает, что змея движется вверх или вниз и, если при этом ее поле direction имеет значение LEFT, то вскоре змея должна начать двигаться влево и не должна при этом принимать новых команд на изменение направления.
Надеюсь, понятнее объяснил :)
По поводу прошедших тестов с такой реализацией метода - поправим тесты в ближайшее время.
0
Иван Кирсанов Java Developer в ЮMoney
9 января 2019, 15:38
это очень запутано. проще просто проверять новый Direction и параллель змейки. Идея понятна, после задания направления, мы его уже не сможем изменить пока змейка не происуется. Но лучше для геймплея, на мой взгляд, иметь контроль до последнего
0
Roman Pryshchepa Java Developer Expert
12 декабря 2018, 07:57
Не совсем понял вопрос. Посмотри на блоки условий, там есть отличия.
И опиши плз свою логику выполнения требований задачи.
И куда подевался остальной функционал метода setDirection ?
+1