纸牌游戏框架Python 2.6帮助/指导

时间:2013-11-01 16:10:38

标签: python arrays

我需要一些指导,以便从这个任务开始。我们必须制作一个程序,简单地跟踪每张卡从牌组发送到玩家,计算机或者是否仍在牌组中的位置。

我的教授给了我们必须使用的初学者代码,不允许改变

""" 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)  

我对于我想要的每个函数,showDeck(),showHand(PLAYER),showHand(COMP)以及clearDeck()函数的一个小想法有一些想法。我只是需要一些指导,以确定是否需要创建一个类,或者只是使用数组(我读过的python中的列表)来跟踪每张卡。我也很感激如何创建一个可以跟踪所有卡片的卡片。谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

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

会工作我认为...类可能会使它更具惯用性...但你当然可以用数组/列表dicts / 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