コード例 #1
0
ファイル: cardcounter.py プロジェクト: mckoss/labs
    def play(self):
        while True:
            cards = self.game.get_my_cards()
            if len(cards) == 0:
                self.game.bet(1)
                return

            # Hit on soft 17
            if BlackjackDeck.sum(cards) < (18 if 1 in BlackjackDeck.card_values(cards) else 17):
                self.game.hit()
                continue

            return
コード例 #2
0
    def play(self):
        while True:
            cards = self.game.get_my_cards()
            if len(cards) == 0:
                self.game.bet(1)
                return

            # Hit on soft 17
            if BlackjackDeck.sum(cards) < (
                    18 if 1 in BlackjackDeck.card_values(cards) else 17):
                self.game.hit()
                continue

            return
コード例 #3
0
ファイル: cardcounter.py プロジェクト: mckoss/labs
 def can_split_player(self, i):
     if len(self.hands[i]) != 1:
         return False
     hand = self.get_player_hand(i)
     values = BlackjackDeck.card_values(hand.cards)
     return hand.num_cards() == 2 and values[0] == values[1]
コード例 #4
0
ファイル: cardcounter.py プロジェクト: mckoss/labs
    def play(self):
        while True:
            cards = self.game.get_my_cards()
            if len(cards) == 0:
                self.game.bet(1)
                return

            total = BlackjackDeck.sum(cards)
            values = BlackjackDeck.card_values(cards)
            dealer_card = BlackjackDeck.card_value(self.game.get_dealer_card())

            if self.game.can_split():
                if values[0] == 1 or values[0] == 8:
                    self.game.split()
                    return
                if (
                    values[0] in (2, 3, 7)
                    and dealer_card in (2, 3, 4, 5, 6, 7)
                    or values[0] == 4
                    and dealer_card in (5, 6)
                    or values[0] == 6
                    and dealer_card in (2, 3, 4, 5, 6)
                    or values[0] == 9
                    and dealer_card not in (1, 7)
                ):
                    self.game.split()
                    return

            if 1 in BlackjackDeck.card_values(cards):
                if total >= 19:
                    return

                if total <= 17:
                    if self.game.can_double() and (
                        dealer_card in (5, 6) or dealer_card == 4 and total >= 15 or dealer_card == 3 and total == 17
                    ):
                        self.game.double()
                        return
                    self.game.hit()
                    continue

                # A-7 == 18
                if self.game.can_double() and dealer_card in (3, 4, 5, 6):
                    self.game.double()
                    return

                if dealer_card in (2, 3, 4, 5, 6, 7, 8):
                    return

                self.game.hit()
                continue

            if total >= 17:
                return

            if total >= 13 and dealer_card in (2, 3, 4, 5, 6):
                return

            if total == 12 and dealer_card in (4, 5, 6):
                return

            if (
                self.game.can_double()
                and total >= 9
                and total <= 11
                and (
                    dealer_card in (3, 4, 5, 6)
                    or total >= 10
                    and dealer_card in (2, 7, 8, 9)
                    or total == 11
                    and dealer_card == 10
                )
            ):
                self.game.double()
                return

            self.game.hit()
コード例 #5
0
 def can_split_player(self, i):
     if len(self.hands[i]) != 1:
         return False
     hand = self.get_player_hand(i)
     values = BlackjackDeck.card_values(hand.cards)
     return hand.num_cards() == 2 and values[0] == values[1]
コード例 #6
0
    def play(self):
        while True:
            cards = self.game.get_my_cards()
            if len(cards) == 0:
                self.game.bet(1)
                return

            total = BlackjackDeck.sum(cards)
            values = BlackjackDeck.card_values(cards)
            dealer_card = BlackjackDeck.card_value(self.game.get_dealer_card())

            if self.game.can_split():
                if values[0] == 1 or values[0] == 8:
                    self.game.split()
                    return
                if values[0] in (2, 3, 7) and dealer_card in (2, 3, 4, 5, 6, 7) or \
                        values[0] == 4 and dealer_card in (5, 6) or \
                        values[0] == 6 and dealer_card in (2, 3, 4, 5, 6) or \
                        values[0] == 9 and dealer_card not in (1, 7):
                    self.game.split()
                    return

            if 1 in BlackjackDeck.card_values(cards):
                if total >= 19:
                    return

                if total <= 17:
                    if self.game.can_double() and (
                            dealer_card in (5, 6)
                            or dealer_card == 4 and total >= 15
                            or dealer_card == 3 and total == 17):
                        self.game.double()
                        return
                    self.game.hit()
                    continue

                # A-7 == 18
                if self.game.can_double() and dealer_card in (3, 4, 5, 6):
                    self.game.double()
                    return

                if dealer_card in (2, 3, 4, 5, 6, 7, 8):
                    return

                self.game.hit()
                continue

            if total >= 17:
                return

            if total >= 13 and dealer_card in (2, 3, 4, 5, 6):
                return

            if total == 12 and dealer_card in (4, 5, 6):
                return

            if self.game.can_double() and total >= 9 and total <= 11 and (
                    dealer_card in (3, 4, 5, 6)
                    or total >= 10 and dealer_card in (2, 7, 8, 9)
                    or total == 11 and dealer_card == 10):
                self.game.double()
                return

            self.game.hit()