public enum CompassDirection {
    NORTH, EAST, SOUTH, WEST;
    
    int getDeltaRow() {
        switch (this) {
            case NORTH: return -1;
            case SOUTH: return +1;
            default: return 0;
        }
    }
    
    int getDeltaColumn() {
        switch (this) {
            case EAST: return +1;
            case WEST: return -1;
            default: return 0;
        }
    }
    
    CompassDirection getRight() {
        switch (this) {
            case NORTH: return EAST;
            case EAST: return SOUTH;
            case SOUTH: return WEST;
            case WEST: return NORTH;
            default: return null;
        }
    }
    
    CompassDirection getLeft() {
        return getRight().getRight().getRight();
    }
    
    CompassDirection getAround() {
        return getRight().getRight();
    }
}
