import turtle


class Shape:
    '''
    Represents a two-dimensional shape

    position: pair-of-float     - location of this shape

    This is an abstract class.  It should not be used directly, but rather
    its subclasses may be used.
    '''

    def __init__(self, x, y):
        ''' (Shape, float, float) -> NoneType

        Initialize a new shape self to have position (x, y)
        '''
        self.position = (x, y)

    def move_to(self, x, y):
        ''' (Shape, float, float) -> NoneType

        Move shape self to (x, y).
        '''
        self.position = (x, y)

    def draw(self, t):
        ''' (Shape, Turtle) -> NoneType

        Draw self using t.
        '''
        raise NotImplementedError('Need a subclass')

    def get_area(self):
        ''' (Shape) -> float

        Return the area of self.

        >>> from square import Square
        >>> Square(0, 0, 10).get_area()
        100.0
        '''
        raise NotImplementedError('Need a subclass')

