Я пытаюсь попрактиковаться в программировании на Python, создав карточную игру.Сейчас я хочу добиться, чтобы игрок взял карту из колоды.У меня есть следующий код:
class Deck():
def __init__(self):
#create the deck
self.deck = []
self.discard_pile = []
def create_deck(self):
#assign the number of cards for each type to a card (dict)
deck_stats = {"A":4, "B":6, "C":5, "D":5, "E":5, "F":5, "G":5, "H":5, "I":5, 'J':5}
for card in deck_stats.keys():
for i in range(0,deck_stats[card]):
self.deck.append(card)
return self.deck
def shuffle(self):
#randomise the deck or for when the shuffle card is played
random.shuffle(self.deck)
return self.deck
def pickup(self):
#picks up the first card on the draw pile
picked_up = self.deck.pop(0)
print(picked_up)
return picked_up
И класс проигрывателя:
class Player(Deck):
def __init__(self):
self.player_hand = ["defuse"]
for i in range(6):
self.draw_card()
def draw_card(self):
#draw pile reduces by one
deck = Deck()
deck.create_deck()
deck.shuffle()
self.player_hand.append(deck.pickup())
return self.player_hand
В методе draw_card()
из класса Player я вызвал метод pickup
изПалубный класс.Я считаю, что это неправильно, но я не уверен, как еще можно забрать карту из объекта Deck.
Кроме того, метод draw_card
явно не работает так, как предполагалоськаждый раз он создает новую колоду, а затем подбирает ее из новой колоды (по крайней мере, это то, что я думаю сейчас).Это возвращает меня к моему первоначальному вопросу: как заставить игрока забрать карту из той же колоды, чтобы мне не приходилось каждый раз создавать новую колоду?