【发布时间】:2014-11-17 11:20:11
【问题描述】:
import random
import itertools
suit = 'CSHD'
rank = '23456789TJQKA'
deck_of_cards = [''.join(card) for card in itertools.product(rank, suit)]
def draw_card(deck,hand, count):
for i in range(count):
hand.append(deck.pop())
def hand_selection(deck):
shuffled_deck = random.sample(deck, len(deck))
dealer_hand = []
player_hand = []
draw_card(shuffled_deck, dealer_hand, 1)
draw_card(shuffled_deck, player_hand, 1)
draw_card(shuffled_deck, dealer_hand, 1)
draw_card(shuffled_deck, player_hand, 1)
return dealer_hand,player_hand
这里尽量遵循发牌原则。最初我想随机生成一张牌,将其从shuffled_deck 中删除,但我们不会通过随机翻牌来发牌,是吗?出于我的目的,代码做了它应该做的事情,但它看起来不太好。 (是的,shuffled_deck、player_hand 和 dealer_hand 实际上都是全局变量,但暂时无关紧要。)
以这种方式发牌的更优雅(阅读:pythonic)的解决方案是什么?例如,我们是否在 3 名玩家之间玩类似中国扑克的游戏。像这样一个一个地处理似乎太乏味了。
【问题讨论】:
标签: python playing-cards