Ejemplo n.º 1
0
    def update(self, mouse_X, mouse_Y, round_over, playerHand, dealerHand,
               text, deck, discard_pile, wins, losses):
        """runs an update check to see if player hit the button and stand/end round if hit"""

        winner = text

        if self.rect.collidepoint(int(mouse_X),
                                  int(mouse_Y)) == 1 and round_over == 0:

            #if round isn't over set to end of round
            if round_over == 0:
                round_over = 1

                #determine current totals in each hand
                player_total = gf.checkValue(playerHand)
                dealer_total = gf.checkValue(dealerHand)

                #if dealer is under 17, hit until he is at 17+
                while dealer_total < 17:
                    deck, discard_pile, dealerHand = Deck.hit(
                        deck, discard_pile, dealerHand)
                    dealer_total = gf.checkValue(dealerHand)

                #if dealer hit pushes over 21 then he loses, otherwise, determine winner
                if dealer_total > 21:
                    winner = "dealer bust"
                    wins += 1
                else:
                    winner, wins, losses = gf.determineWinner(
                        player_total, dealer_total, wins, losses)

        return round_over, winner, deck, discard_pile, dealerHand, playerHand, wins, losses
Ejemplo n.º 2
0
    def update(self, mouse_X, mouse_Y, deck, discard_pile, player_hand,
               dealer_hand, round_over, text, wins, losses):
        """respond to user request to double down"""

        winner = text

        if self.rect.collidepoint(int(mouse_X), int(
                mouse_Y)) == 1 and round_over == 0 and len(player_hand) == 2:
            #round is over, distribute card to user and see who wins
            round_over = 1

            deck, discard_pile, player_hand = Deck.hit(deck, discard_pile,
                                                       player_hand)

            player_value = gf.checkValue(player_hand)
            dealer_value = gf.checkValue(dealer_hand)

            if player_value > 21:
                winner = "player bust"
                losses += 1
            else:
                if dealer_value < 17:
                    deck, discard_pile, dealer_hand = Deck.hit(
                        deck, discard_pile, dealer_hand)
                    dealer_value = gf.checkValue(dealer_hand)

                #check for a bust on dealer
                if dealer_value > 21:
                    winner = "dealer bust"
                    wins += 1
                elif player_value > dealer_value:
                    winner = "player"
                    wins += 1
                elif player_value < dealer_value:
                    winner = "dealer"
                    losses += 1
                elif player_value == dealer_value:
                    winner = "push"

        return deck, discard_pile, player_hand, dealer_hand, round_over, winner, wins, losses
Ejemplo n.º 3
0
    def update(self, mouse_X, mouse_Y, deck, discard_pile, player, round_over,
               text, losses):
        """respons to the users request to to hit"""

        winner = text

        if self.rect.collidepoint(int(mouse_X),
                                  int(mouse_Y)) == 1 and round_over == 0:
            deck, discard_pile, player = Deck.hit(deck, discard_pile, player)

            hand_total = gf.checkValue(player)

            #check for a bust
            if hand_total > 21:
                round_over = 1
                losses += 1
                winner = "player bust"

        return deck, discard_pile, player, round_over, winner, losses