Я довольно новичок в python и пытаюсь создать блэкджек. Однако, когда я пытаюсь распечатать руку игрока, я сталкиваюсь с несколькими трудностями.
Это мой код для удара (рисование карты):
def hit(card, deck):
global money, choice
choice = input("How much would you like to bet?\n")
money -= int(choice)
print("You have decided to bet $" + str(choice))
card = card.drawCard(deck.deck)
card.getPt()
deck.addScore(card)
deck.addCard(card)
c = str(card)
p = str(deck)
print("You have drawn: " + str(c) + "\n")
print("The player has:\n" + str(p) + "\n")
print("Total score:", deck.score)
А это мой код для распечатки моих карт:
def __str__(self):
for i in range(0, len(self.deck)):
self.print = self.print + "\n" + str(self.deck[i])
return self.print
Первое, что делает мой код - это берет две карты для дилера и игрока, что работает нормально. Тем не менее, после того, как игрок берет карту, он становится немного вялым. Вывод примерно такой:
The player has drawn Card A
The player has drawn Card B
Total score: number
How much would you like to bet?
number
You have bet number
You have drawn Card B
Player has:
Card A
Card B
Card A
Card B
Card B
Когда я вытягиваю новую карту, карта не меняется, она остается последней картой, которую я вытянул. Затем, когда я печатаю свою колоду, она печатает мою старую колоду и мою новую колоду. Тем не менее, оценка верна, что указывает на то, что в моем списке всего три карты. Что происходит и почему печатается пять карт?
Полный код
Пример вывода