в игре про змейку есть такое задание Давай поправим управление. Значения поля 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 ?