def weight_point_in_circle(
        point: tuple,
        center: tuple,
        radius: int,
        corner_threshold: float = 1.5
):
    """
    Function to decide whether a certain grid coordinate should be a full, half or empty tile.

        Arguments:
            point (tuple): x, y of the point to be tested
            center (tuple): x, y of the origin (center) point
            radius (int): radius of certainly empty tiles, does not include half tiles
            corner_threshold (float): threshold that decides if the tile should be a half tile instead of empty

        Returns:
            int: the type of the tested tile

            0 if empty tile
            1 if full tile
            2 if half tile
    """
    diff_x, diff_y = map(lambda x, y: abs(x - y), center, point)  # subtract point from center then abs for both x and y

    if (diff_y > radius) or (diff_x > radius):
        return 0  # eliminate any obviously out of bounds tiles

    # precalculate pythagoras distance squared
    dist_squared = (diff_x * diff_x) + (diff_y * diff_y)
    # precalculate radius sqaured
    radius_squared = radius * radius
    # precalculate rounded distance
    rounded_distance = round(dist_squared)

    if rounded_distance < radius_squared:  # distance within radius
        return 1  # full tile
    elif rounded_distance < radius_squared * corner_threshold and diff_x < radius:  # distance on edge
        return 2  # half tile
    # outside of any thresholds
    return 0