Провозился с данным этапом задачи просто потому, что валидатор отказывался принимать мое (закомментированное) решение - якобы ни одно из направлений движения не вызывается. Перепробовал разные варианты, включая switch с вызовом move (x,y) непосредственно из case сразу со значениями, и 4 if, но без else (просто 4 проверки на каждое из направлений), и с условиями (if (isalive() {...} и if (!isAlive() return; {...}) - один и тот же результат. Получается, что единственным принимаемым решением является конструкция if...else if ... (взял из гугла)? Или я что-то еще не вижу? PS Заодно поинтересуюсь, как нормально оформлять подобный вопрос к задаче, чтобы в нижней части отображалось условие и текст кода? Нигде не нашел никакой инструкции, как это делается - автоматически или как-то вручную?
//    public void move() {
//        int x = 0, y = 0;
//        if (isAlive()) {
//            switch (direction) {
//                case UP: {
//                    y = -1;
//                    break;
//                }
//                case DOWN:{
//                    y = 1;
//                    break;
//                }
//                case LEFT:{
//                    x = -1;
//                    break;
//                }
//                case RIGHT:{
//                    x = 1;
//                    break;
//                }
//            }
//            move(x, y);
//        }
//    }

    public void move() {
        if (!isAlive) return;

        if (direction == SnakeDirection.UP)
            move(0, -1);
        else if (direction == SnakeDirection.RIGHT)
            move(1, 0);
        else if (direction == SnakeDirection.DOWN)
            move(0, 1);
        else if (direction == SnakeDirection.LEFT)
            move(-1, 0);
    }