Как оптимизировать метод moveRobot
Возвращаюсь к предыдущей задаче, рассмотренной здесь Помогите, пожалуйста, найти ошибку в коде
Мне очень понравилось решение по сокращению кода moveRobot, но оно не учитывает условие, при котором направлений взгляда робота не 4 (UP, DOWN, LEFT, RIGHT), а например 20... Подскажите, пожалуйста, как в данном случае реализовать метод moveRobot. Заранее спасибо!
public static void moveRobot(Robot robot, int toX, int toY) {
System.out.println("Начальная позиция " + robot.getX() + " " + robot.getY() + ". Направление взгляда: " + robot.getDirection());
if (robot.getY() != toY) {
while (robot.getDirection() != ((robot.getY() < toY)? Direction.UP : Direction.DOWN)) {
robot.turnLeft();
}
while (robot.getY() != toY) {
robot.stepForward();
}
}
if (robot.getX() != toX) {
while (robot.getDirection() != ((robot.getX() < toX)? Direction.RIGHT : Direction.LEFT)) {
robot.turnLeft();
}
while (robot.getX() != toX) {
robot.stepForward();
}
}
System.out.println("Ending позиция " + robot.getX() + " " + robot.getY() + ". Направление взгляда: " + robot.getDirection());
}