Files
RobotSimulator/src/main/java/au/com/seek/domain/Direction.java
T
2017-04-14 17:39:38 +08:00

101 lines
1.9 KiB
Java

package au.com.seek.domain;
public enum Direction {
NORTH {
@Override
public Direction turnRight() {
return EAST;
}
@Override
public Direction turnLeft() {
return WEST;
}
@Override
public int stepValueOnXAxis() {
return 0;
}
@Override
public int stepValueOnYAxis() {
return STEP_VALUE;
}
},
EAST {
@Override
public Direction turnRight() {
return SOUTH;
}
@Override
public Direction turnLeft() {
return NORTH;
}
@Override
public int stepValueOnXAxis() {
return STEP_VALUE;
}
@Override
public int stepValueOnYAxis() {
return 0;
}
},
SOUTH {
@Override
public Direction turnRight() {
return WEST;
}
@Override
public Direction turnLeft() {
return EAST;
}
@Override
public int stepValueOnXAxis() {
return 0;
}
@Override
public int stepValueOnYAxis() {
return NEGATIVE_STEP_VALUE;
}
},
WEST {
@Override
public Direction turnRight() {
return NORTH;
}
@Override
public Direction turnLeft() {
return SOUTH;
}
@Override
public int stepValueOnXAxis() {
return NEGATIVE_STEP_VALUE;
}
@Override
public int stepValueOnYAxis() {
return 0;
}
};
private static final int NEGATIVE_STEP_VALUE = -1;
private static final int STEP_VALUE = 1;
public abstract Direction turnRight();
public abstract Direction turnLeft();
public abstract int stepValueOnXAxis();
public abstract int stepValueOnYAxis();
}