Я новичок в 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
Когда я беру новую карту, она не меняется, она остается последней картой, которую я вытянул. Затем, когда я печатаю свою колоду, она печатает мою старую колоду и мою новую колоду. Однако счет правильный, что указывает на то, что мой список состоит всего из трех карт. Что происходит и почему он печатает пять карт?