使用 OOP 重置一副纸牌

时间:2021-02-25 20:15:17

标签: python oop blackjack

suits = ['Spades', 'Clubs', 'Diamonds', 'Hearts']
nums = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
def makeDeck():
    return ['8 of Diamonds', '9 of Hearts', '2 of Spades', '2 of Spades', '7 of Diamonds', '4 of Clubs',
            '2 of Spades', '4 of Spades', '3 of Spades', '2 of Spades']

    # return [f"{j} of {i}" for j in nums for i in suits]


class Deck:
    global playerChips
    # deck = (lambda suits, nums: [f"{j} of {i}" for j in nums for i in suits])
    changeCardsDuring = {'A': [1, 11], 'K': 10, 'Q': 10, 'J': 10}
    changeCardsStart = {'A': 11, 'K': 10, 'Q': 10, 'J': 10}
    playerCards = []  # will just contain initial 2 cards
    dealerCards = []  # will just contain initial 2 cards
    playerCardValues = []  # will contain the numerical value for the num/face cards for all the cards
    dealerCardValues = []  # will contain the numerical value for the num/face cards for all the cards
    PlayerStatus = ''
    DealerStatus = ''

    deck = makeDeck()

    def __init__(self):
        pass

    def distribute(self, CardValues, PersonCards):
        for i in range(2):
            card = self.deck[0]
            PersonCards.append(card)
            card = self.deck[0][0]
            if card in self.changeCardsStart:
                CardValues.append(self.changeCardsStart.get(card))
            else:
                CardValues.append(int(card))  # this will append into string format
            self.deck.pop(0)  # this will return [11, 10]
            CardValues.sort()
            print(CardValues)

    def give(self):
        Deck.distribute(self, self.playerCardValues, self.playerCards)
        Deck.distribute(self, self.dealerCardValues, self.dealerCards)
        return f"Player, your cards are {self.playerCards[0]} and {self.playerCards[1]} \nDealer your card is {self.dealerCards[0]} and x

game1 = Deck() ” 但是,每次我运行 game1.give() 时,它都不会给我一个新的套牌,而是一遍又一遍地修改一套套牌。我对 OOP 还很陌生,我看到了一个建议,那就是创建一个新的套牌,我做到了。一切都无济于事。

0 个答案:

没有答案