我想做一个纸牌游戏。我所坚持的是发牌。我所做的就是对每张卡制定一个指令,并赋予它一个值,因为有些卡比其他卡更有价值。我的想法是将字典分成4部分,或者将每本字典复印4份,然后从每份中删除39张卡片(每人留下13张卡片)。这是否可能,或者我是否以错误的方式处理这个问题?
from random import randint
deck = {}
def makeDeck(deck):
suit = ['Club', 'Spade', 'Heart', 'Diamond']
whichSuit = 0
whichNum = 2
count = 1
while count != 52:
if whichNum == 11:
whichNum = 'Jack'
if whichNum == 12:
whichNum = 'Queen'
if whichNum == 13:
whichNum = 'King'
if whichNum == 14:
whichNum = 'Ace'
deck[str(whichNum)+' '+suit[whichSuit]] = count
count += 1
if whichNum == 'Jack':
whichNum = 11
if whichNum == 'Queen':
whichNum = 12
if whichNum == 'King':
whichNum = 13
if whichNum == 'Ace':
whichNum = 14
whichNum += 1
if count == 13 or count == 26 or count == 39:
whichSuit += 1
whichNum = 2
def dealCards(deck):
me = deck
comp1 = deck
comp2 = deck
comp2 = deck
(抱歉,如果代码有误,这是我的第一篇文章,谢谢)
听起来是一个使用课程的好机会!我会这样做:
from random import shuffle
class Cards:
def __init__(self):
values = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
suites = ['H', 'S', 'C', 'D']
self.deck = [j + i for j in values for i in suites]
def shuffle(self):
shuffle(self.deck)
def deal(self, n_players):
self.hands = [self.deck[i::n_players] for i in range(0, n_players)]
c = Cards()
print c.deck
c.shuffle()
print c.deck
c.deal(4)
print c.hands
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)