2013-11-01 53 views
0

我需要一些指導,以便從這項任務開始。我們必須制定一個程序,只記錄每張牌從甲板發送到玩家,計算機,還是仍在甲板上。紙牌遊戲框架Python 2.6幫助/指導

我的教授給我們啓動代碼是我想要的每個功能,showDeck(),梭哈(播放器),我們必須使用,不得改變

""" cardGame.py 
basic card game framework 
keeps track of card locations for as many hands as needed 
""" 
from random import * 

NUMCARDS = 52 
DECK = 0 
PLAYER = 1 
COMP = 2 

cardLoc = [0] * NUMCARDS 
suitName = ("hearts", "diamonds", "spades", "clubs") 
rankName = ("Ace", "Two", "Three", "Four", "Five", "Six", "Seven", 
     "Eight", "Nine", "Ten", "Jack", "Queen", "King") 
playerName = ("deck", "player", "computer") 

def main(): 
    clearDeck() 

for i in range(5): 
    assignCard(PLAYER) 
    assignCard(COMP) 

showDeck() 
showHand(PLAYER) 
showHand(COMP) 

我有一些想法,, showHand(COMP),以及clearDeck()函數的一個小創意。我只是需要一些指導,以確定這是否需要創建一個類,或者只需使用數組(我讀過的Python中的列表)來跟蹤每張卡片。我也希望得到一些關於如何創建所有卡片被跟蹤的套牌的幫助。謝謝你的時間!

回答

0
deck = [(cardval,suitval) for suitval in range(4) for cardval in range(13)] 
deck.shuffle() 

會的工作,我認爲...類可能使其更加地道......但你肯定可以只用數組/列表類型的字典做的/ etc

一個很好的例子是

class Card: 
    def __init__(self,cardval,suitval): 
     self.cardval = cardval 
     self.suitval = suitval 
    def __str__(self): 
     return "%s of %s"%(rankName[self.cardval],suitName[self.suitval]) 
    def __repr__(self): 
     return "Card <%s>"%self 

print Card(0,2) #prints "ace of Spades" 
deck = [Card(cardval,suitval) for suitval in range(4) for cardval in range(13)] 
print deck 
+0

您能否解釋列表和字典之間的主要區別,從我所瞭解的字典存儲可以更改的數據類型,而列表有點靜態,只有在程序內完成時纔會更改。我們還沒有真正覆蓋類中的字典 – LAS

+0

字典只是鍵/值對......非常類似於其他語言中的哈希表'變量[鍵] =值'例如'my_dict ['cards'] ='A234567890JQK'' –