Я пытаюсь изучить Python и пытаюсь создать игру в блэкджек. Я создал класс Person
, в котором он имеет переменную экземпляра с именем self.hand
. self.hand
- это пустой список, который должен содержать 2 начальные карты, и оттуда любой игрок, которому нужна карта, получит карту с помощью метода добавления. Однако по некоторым причинам это не работает для меня. Кто-то, пожалуйста, помогите, это беспокоит меня уже несколько дней !!
Я уже пытался создать экземплярный метод get_add_card
(получить дополнительную карту) и пытался вручную добавить новый объект карты в список рук людей. Ничего не сработало.
Первый фрагмент кода - это класс Person
. В этом классе я определяю self.hand
как список, в котором изначально будут храниться 2 объекта карты (get_cards
). После этого я сделал другой метод, который должен добавить другую карту в список, если это необходимо. Второй блок кода должен проверить, кому нужна карта, а затем добавить случайную карту в этот список лиц.
class Person:
def __init__(self, name):
self.name = name
self.hand = []
self.get_cards()
def get_cards(self):
for i in range(2):
rand_card = random.choice(Deck.cards)
self.hand.append(rand_card)
Deck.cards.remove(rand_card)
def get_add_card(self):
self.hand.append(random.choice(Deck.cards))
need_card = True
while need_card:
answer = input("Does anyone need a card? Yes or No")
if answer.lower() == 'no':
need_card = False
elif answer.lower() == 'yes':
player_need = input("Which player needs a card?").lower()
Person(player_need).get_add_card()
print (Person(player_need).hand)
else:
print("Please answer using yes or no")
Код должен добавить случайную карту в список раздач. Однако этого не происходит, и когда я пытаюсь распечатать их руку в конце, это только показывает, что это две карты, с которых начинал человек в начале.