Пример #1
0
class Player():
    def __init__(self, deck):
        self.my_hand = Hand()
        self.my_chips = Chips()
        self.deck = deck

    def __str__(self):
        return "Hand {1}: {0}".format([
            "{} of {}".format(x.suit, {k
                                       for k, v in x.rank.items()})
            for x in self.my_hand.cards
        ], self.__class__.__name__)

    def hit(self):
        card = self.deck.deal()
        if "ase" in card.rank:
            card.rank["ase"] = self.my_hand.adjas_of_ase()
        self.my_hand.values += [x for x in card.rank.values()][0]
        self.my_hand.add_card(card)
        print(card)

    def begin(self):
        self.my_hand.add_card(self.deck.deal())
        self.my_hand.add_card(self.deck.deal())
        for ase in self.my_hand.cards:
            if [k for k in ase.rank if k is "ase"]:
                ase.rank["ase"] = self.my_hand.adjas_of_ase()
        self.my_hand.values = sum(
            [sum({v
                  for k, v in x.rank.items()}) for x in self.my_hand.cards])
Пример #2
0
class Dealer(Player):

    def __init__(self, deck):
        self.my_hand = Hand()
        self.deck = deck
        self.i = 1

    def __str__(self):
        return  "Hand {1}: {0}".format(
            ["{} of {}".format(
                self.my_hand.cards[x].suit,
                {k for k, v in self.my_hand.cards[x].rank.items()}) for x in range(0,self.i)],
            self.__class__.__name__)

    def hit(self):
        card = self.deck.deal()
        print(card)
        self.i += 1
        if "ase" in card.rank:
            card.rank["ase"] = self.my_hand.adjas_of_ase()
        self.my_hand.values += [x for x in card.rank.values()][0]
        self.my_hand.add_card(card)

    def show_2nd_card(self):
        self.i += 1

    def take_bet(self, player, bet):
        player.my_chips.total -= bet
        player.my_chips.bet += bet