def _get_outside_corners(corners, board):
    """
    Return the four corners of the board as a whole, as
    (up_left, up_right, down_right, down_left).
    """
    xdim = board.n_cols
    ydim = board.n_rows

    if corners.shape[1] * corners.shape[0] != xdim * ydim:
        raise Exception(
            "Invalid number of corners! %d corners. X: %d, Y: %d"
            % (corners.shape[1] * corners.shape[0], xdim, ydim)
        )

    up_left = corners[0, 0]
    up_right = corners[xdim - 1, 0]
    down_right = corners[-1, 0]
    down_left = corners[-xdim, 0]

    return (up_left, up_right, down_right, down_left)