в игре про змейку есть такое задание
Давай поправим управление. Значения поля direction могут меняться только на валидные в данный момент: LEFT, RIGHT, UP, DOWN.
Требования:
1. Метод setDirection(Direction) класса Snake не должен ничего делать, если значение поля direction равно LEFT, и сегменты змейки из snakeParts с индексами 0 и 1 имеют одинаковое значение координаты x.
2. Метод setDirection(Direction) класса Snake не должен ничего делать, если значение поля direction равно RIGHT, и сегменты змейки из snakeParts с индексами 0 и 1 имеют одинаковое значение координаты x.
...
и вот этот код(с 22 попытки) у меня прошёл
public class Snake {
private static final String HEAD_SIGN = "\uD83D\uDC7E";
private static final String BODY_SIGN = "\u26AB";
private List< GameObject > snakeParts = new ArrayList<>();
private Direction direction = Direction.LEFT;
public boolean isAlive = true;
public void setDirection(Direction direction) {
switch (this.direction) {
case LEFT:
case RIGHT:
if (snakeParts.get(0).x == snakeParts.get(1).x) return;
break;
case UP:
case DOWN:
if (snakeParts.get(0).y == snakeParts.get(1).y) return;
break;
}
this.direction = direction;
}
...
вот только я понять не могу, а зачем проверять предыдущее направление this.direction, а не новое direction ?