def METHOD_NAME(self):
    """ Set up the game here. Call this function to restart the game. """
    # List of cards we are dragging with the mouse
    self.held_cards = []
    # Original location of cards we are dragging with the mouse in case
    # they have to go back.
    self.held_cards_original_position = []
    # ---  Create the mats the cards go on.
    # Sprite list with all the mats tha cards lay on.
    self.pile_mat_list: arcade.SpriteList = arcade.SpriteList()
    # Create the mats for the bottom face down and face up piles
    pile = arcade.SpriteSolidColor(MAT_WIDTH, MAT_HEIGHT, arcade.csscolor.DARK_OLIVE_GREEN)
    pile.position = START_X, BOTTOM_Y
    self.pile_mat_list.append(pile)
    pile = arcade.SpriteSolidColor(MAT_WIDTH, MAT_HEIGHT, arcade.csscolor.DARK_OLIVE_GREEN)
    pile.position = START_X + X_SPACING, BOTTOM_Y
    self.pile_mat_list.append(pile)
    # Create the seven middle piles
    for i in range(7):
        pile = arcade.SpriteSolidColor(MAT_WIDTH, MAT_HEIGHT, arcade.csscolor.DARK_OLIVE_GREEN)
        pile.position = START_X + i * X_SPACING, MIDDLE_Y
        self.pile_mat_list.append(pile)
    # Create the top "play" piles
    for i in range(4):
        pile = arcade.SpriteSolidColor(MAT_WIDTH, MAT_HEIGHT, arcade.csscolor.DARK_OLIVE_GREEN)
        pile.position = START_X + i * X_SPACING, TOP_Y
        self.pile_mat_list.append(pile)
    # Sprite list with all the cards, no matter what pile they are in.
    self.card_list = arcade.SpriteList()
    # Create every card
    for card_suit in CARD_SUITS:
        for card_value in CARD_VALUES:
            card = Card(card_suit, card_value, CARD_SCALE)
            card.position = START_X, BOTTOM_Y
            self.card_list.append(card)