Код: Выделить всё
player_card_data = [, ]
Код: Выделить всё
player_card_data[0].card_value
Моя текущая проблема заключается в том, что я хочу учитывать тузы, которые ранее в моей программе я установил на значение 11. Мне нужно проверить и посмотреть, каков счет, чтобы рука не обанкротилась автоматически, вытянув 2 туза (22). В настоящее время я встраиваю это в функцию многократного использования и полагаю, что мне нужно будет сделать простой оператор сравнения.
(Это то, что я сейчас пытаюсь/пробовал, но пока безрезультатно.)
Код: Выделить всё
def calculate_score(player_card_data):
"""
Calculates the score of the players cards, accounting for aces, then returns the score
"""
if player_card_data[0].card_value == player_card_data[1].card_value:
player_card_data[0].card_value = 1
player_score = player_card_data[0].card_value + player_card_data[1].card_value
return player_score
Объекты карт изначально заполняются в массив колоды, из которого затем рисуются карты. из, а затем удален из этой колоды. Это гарантирует, что объекты, которыми я манипулирую, существуют только в течение текущего раунда блэкджека и, как следствие, не влияют на колоду, поскольку после текущего раунда они больше не существуют. Я знаю, что манипулирование объектами, как правило, является плохой практикой, но если объект больше не существует после завершения раунда, это не является серьезной проблемой.
Я делаю это таким образом, чтобы создать конечное число игр, прежде чем колоду нужно будет «перетасовать» (пересоздать).
Данные, которые вводятся для создания объектов карты, размещаются вне класса карты внутри объектов и массивов:
Код: Выделить всё
suits = ["Spades", "Hearts", "Clubs", "Diamonds"]
suits_values = {"Spades":"\u2664", "Hearts":"\u2661", "Clubs": "\u2667", "Diamonds": "\u2662"}
cards = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
cards_values = {"A": 11, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9, "10":10, "J":10, "Q":10, "K":10}
Код: Выделить всё
def create_deck():
"""
Creates a new deck of 52 card objects by passing each card suit, card and card value
into the Card class, then appending it to the deck array.
"""
# we now create our deck of cards
deck = []
# Loop for every type of suit
for suit in suits:
cards = ["A", "A", "A", "A"]
# Loop for every type of card in a suit
for card in cards:
# Adding card to the deck
deck.append(Card(suits_values[suit], card, cards_values[card]))
return deck
Как мне сделать это масштабируемым? на любое количество карт?
Подробнее здесь: https://stackoverflow.com/questions/789 ... for-compar