На игровом поле находится робот. Позиция робота на поле описывается двумя целочисленным координатами: X и Y. Ось X смотрит слева направо, ось Y — снизу вверх. (Помните, как рисовали графики функций в школе?)
В начальный момент робот находится в некоторой позиции на поле. Также известно, куда робот смотрит: вверх, вниз, направо или налево. Ваша задача — привести робота в заданную точку игрового поля.
Робот описывается классом Robot. Вы можете пользоваться следующими его методами:
public class Robot {
public Direction getDirection() {
// текущее направление взгляда
}
public int getX() {
// текущая координата X
}
public int getY() {
// текущая координата Y
}
public void turnLeft() {
// повернуться на 90 градусов против часовой стрелки
}
public void turnRight() {
// повернуться на 90 градусов по часовой стрелке
}
public void stepForward() {
// шаг в направлении взгляда
// за один шаг робот изменяет одну свою координату на единицу
}
}
Direction, направление взгляда робота, — это перечисление:
public enum Direction { UP, DOWN, LEFT, RIGHT }
Пример
В метод передано: toX == 3, toY == 0; начальное состояние робота такое: robot.getX() == 0, robot.getY() == 0, robot.getDirection() == Direction.UP
Чтобы привести робота в указанную точку (3, 0), метод должен вызвать у робота следующие методы:
robot.turnRight(); robot.stepForward(); robot.stepForward(); robot.stepForward();