public Coordinate normalizeCoordinate() {
        Coordinate newCoordinate = null;
        
        switch (z) {
        // If the z coordinate is either 0 or 1, the coordinate is already
        // on the top right or right of a tile, so just return the current
        // coordinate
        case 0:
        case 1:
            newCoordinate = new Coordinate(x, y, z);
            break;
        case 2: // Represent as right of tile left 1, up 1
            newCoordinate = new Coordinate(x - 1, y + 1, 0);
            break;
        case 3: // Represent as top right of tile left 1
            newCoordinate = new Coordinate(x - 1, y, 1);
            break;
        case 4: // Represent as right of tile left 1
            newCoordinate = new Coordinate(x - 1, y, 0);
            break;
        case 5: // Represent as top right of tile down 1
            newCoordinate = new Coordinate(x, y - 1, 1);
            break;
        }
        
        return newCoordinate;
    }