MapTools.java
package robot;
import static robot.Direction.*;
public class MapTools {
static Coordinates nextForwardPosition(Coordinates position, Direction direction) {
if (direction == NORTH)
return new Coordinates(position.getX(), position.getY() - 1);
if (direction == SOUTH)
return new Coordinates(position.getX(), position.getY() + 1);
if (direction == EAST)
return new Coordinates(position.getX() + 1, position.getY());
return new Coordinates(position.getX() - 1, position.getY());
}
static Coordinates nextBackwardPosition(Coordinates position, Direction direction) {
if (direction == NORTH)
return new Coordinates(position.getX(), position.getY() + 1);
if (direction == SOUTH)
return new Coordinates(position.getX(), position.getY() - 1);
if (direction == EAST)
return new Coordinates(position.getX() - 1, position.getY());
return new Coordinates(position.getX() + 1, position.getY());
}
static Direction counterclockwise(Direction direction) {
if (direction == NORTH) return WEST;
if (direction == WEST) return SOUTH;
if (direction == SOUTH) return EAST;
return NORTH;
}
static Direction clockwise(Direction direction) {
if (direction == NORTH) return EAST;
if (direction == EAST) return SOUTH;
if (direction == SOUTH) return WEST;
return NORTH;
}
}