我试图通过创建一个纸牌游戏来练习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
方法。我认为这样做是不对的,但我不知道如何从牌堆中取出一张牌。
draw_card
方法显然没有按预期的方式工作,因为它每次都在创建一个新的甲板,然后从新甲板上取货(至少我认为它现在正在这样做)。这让我回到了我最初的问题,我如何让玩家从同一副牌中取出一张牌,这样我就不需要每次都创建一张新牌了?