Example #1
0
def deal_init():
    ########
    #Clean player frame from the hit cards:
    Deal.clean_table(frames = [player_cards_frame,dealer_cards_frame,deal_results_frame])
    ########

    ########
    #Initialize Card Instances so this way i will have a new deck each time deal is pressed
    cards_instances = []
    for card in collect_cards():
        cards_instances.append(Card(name = card)) # (Card instance)
        print(f'{card} added to deck')
    ########


    #Initialize Game:
    game  = Deal(
        deck = cards_instances,
        master = root,
        player_cards_frame = player_cards_frame,
        player_game_options_frame = player_game_options_frame,
        player_card1_label = player_card1_label,
        player_card2_label = player_card2_label,
        dealer_card1_label = dealer_card1_label,
        dealer_card2_label = dealer_card2_label,
        player_score_label = player_score_label,
        dealer_score_label = dealer_score_label,
        dealer_cards_frame = dealer_cards_frame,
        deal_results_frame = deal_results_frame,
        player_busted_message = player_busted_message,
        dealer_busted_message = dealer_busted_message,
        split = split
    )

    # Starting operations in real game:

    #deal player:
    game.deal_player()


    #deal for dealer:
    #handle all dealt cards for dealer for here so we can keep one undisplayed
    dealer_1 = game.get_card(dealer_card1_label, is_player = False)
    dealer_2 = game.get_card(dealer_card2_label, is_player = False, display=False)

    #fill the score board:
    game.set_scoreboard()

    #See if split should be disabled or enabled:
    game.set_split_button_state()


    #Set the Buttons click function <Button-1> Stand for left click
    hit.bind('<Button-1>', lambda event: game.hit(dealer_2))
    stand.bind('<Button-1>', lambda event: game.finish_player_turn(dealer_2))