我需要一些指导,以便从这个任务开始。我们必须制作一个程序,简单地跟踪每张卡从牌组发送到玩家,计算机或者是否仍在牌组中的位置。
我的教授给了我们必须使用的初学者代码,不允许改变
""" 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中的列表)来跟踪每张卡。我也很感激如何创建一个可以跟踪所有卡片的卡片。谢谢你的时间!
答案 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