Python 一直在制作纸牌游戏
我已经创建了一个纸牌游戏,可以将一副牌从13张牌洗成4张牌,下面是代码:Python 一直在制作纸牌游戏,python,unicode,Python,Unicode,我已经创建了一个纸牌游戏,可以将一副牌从13张牌洗成4张牌,下面是代码: def shuffle_deck(): deck = [] for suit in ['H','C','D','S']: for denom in['A','2','3','3','4','5','6','7','8','9','10','J','Q','K']: deck += [denom + suit] random.shuffle(deck) return deck def deal_ha
def shuffle_deck():
deck = []
for suit in ['H','C','D','S']:
for denom in['A','2','3','3','4','5','6','7','8','9','10','J','Q','K']:
deck += [denom + suit]
random.shuffle(deck)
return deck
def deal_hand(n,deck):
hand = []
for i in range(n):
card = deck.pop()
hand += [card]
return hand
def deal_cards(n,cards,deck):
player = []
for i in range(n):
player.append(deal_hand(cards,deck))
return player
def deal_hands():
deck = shuffle_deck()
players = deal_cards(4, 13,deck)
print(players)
但是我被直方图卡住了,我想在四个列表输出中查找心脏和黑桃。如下所示:
>>>print(hands)
[['8H','KC','KS','AC','QD','7H','7D','4D','9D','3H','KD','6H','9S'],
['2C','7C','TC','2S','QC','6D','JC','5H','2H','8D','3D','7S','4H'],
['8S','8C','JD','6S','3C','5C','AD','5D','2D','4C','QH','4S','AH'],
['AS','9C','JS','QS','TH','JH','TS','3S','6C','5S','KH','9H','TD']]
>>>card_histogram(hands)!
❤❤❤❤ #four hearts in the first list
❤❤❤ #three hearts in the second list
❤❤ #two hearts in the third list
❤❤❤❤♠ #four heart and one spades in the fourth list
如何根据我编写的代码创建card_直方图函数 我不确定您提供的输出是否与您提供的输入相符,但是,您应该遍历每个子列表并计算每个套装的卡片数量,然后执行您应该执行的任何打印操作
def card_histogram(hands):
for hand in hands:
numHearts, numSpades, numClubs, numDiamonds = 0, 0, 0, 0
for card in hand:
if card[1] == 'H': numHearts += 1
elif card[1] == 'S': numSpades += 1
elif card[1] == 'C': numClubs += 1
else: numDiamonds += 1
for x in range(numHearts): print_heart()
for x in range(numSpades): print_spade()
# etc
请注意,card[1]
对字符串进行子索引,并使用第1个(即第2个)字符,您知道这是表示套装的字符。打印是伪代码,因为我不知道您对打印的unicode输出的期望是什么,但是如果您试图打印这些unicode字符,您可能可以直接将它们键入文件,因为在Python 3中,默认的文件编码是utf8(如果我错了,请有人纠正我)