2015-10-16 32 views
0

我是OOP的新手,在過去的一個小時裏,我一直在寫這篇文章。我只是不明白如何將我創建的套牌分配給2名玩家!如何添加2名玩家並給他們卡? [Python]

class Card: 
    def __init__(self, faceNum, suitNum): 
     self.faceNum = faceNum 
     self.suitNum = suitNum 

    def getCardName(self): 
      nameSuit = ['Ace','2','3','4','5','6','7','8','9','10','Jack','Queen','King'] 
      nameFace = ['Coeur','Pique','Carreau','Trèfle'] 
      return "%s of %s" % (nameFace[self.faceNum], nameSuit[self.suitNum]) 

    def __str__(self): 
     carte_print1 = str(self.faceNum) 
     carte_print2 = str(self.suitNum) 
     return carte_print1 +('-')+ carte_print2 

class Player: 
    def __init__(self,ID,Card): 
     self.PlayerID = ID 
     self.CardForPlayer = Card 

主代碼

import random 

playerA = list() 
playerB = list() 
deck = list() 

def deck(): 
    deck = [] 
    for suitNum in range(13): 
    for faceNum in range(4): 
     deck.append(Card(faceNum, suitNum)) 
    return deck 

deck = deck() 
random.shuffle(deck) 
for card in deck: 
    print(card.getCardName()) 

現在我只需要給2個球員的卡我怎麼做到這一點?等量!

回答

1

所以在Player類中應該有一個屬性,名字如deck。修改你的Player這樣的課。

class Player: 
    def __init__(self,ID,deck): 
     self.PlayerID = ID 
     self.deck = deck # this will hold a list of Card objects 

現在在您的主代碼中,在您寫的內容的末尾添加以下行。

player1 = Player(1, deck()) 
player2 = Player(2, deck()) 
+0

好的,有道理。從那裏,我可以如何平均分配他們的52張卡? – iLearnn

+0

許多方法。也許在接受2名球員(或者可能是更大的比賽的球員名單?)的套牌中添加一個'交易'方法?另外,稱我爲純粹主義者,但玩家擁有的牌會被視爲他們的'手'? – RobertB

+1

@iLearnn您可能想要修改後綴__init__方法的縮進。 – RobertB

相關問題