用python构建“甲板”

2024-04-25 21:55:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始学习编程,现在正试图写一个21点程序。我遇到的一个问题是,在我代表一副牌的方式上,我是这样做的(西装对我来说无关紧要):

A = 11
J = 10
Q = 10
K = 10

deck = [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K
    ] * 4

问题是当“发牌”时,当我想让它们显示为J、Q、K或a时,它们会显示10(11代表a…)

以下是交易函数:

def deal(competitor, x):
    for i in range (0,x):
        card = shoe[0] 
        dealt.append(card)
        competitor.append(card)
        shoe.remove(card)

有什么办法吗?你知道吗


Tags: 函数程序def编程方式代表交易card
1条回答
网友
1楼 · 发布于 2024-04-25 21:55:19

首先,实现这种映射的最简单方法是使用字典。第二,您的deck将遇到a common problem with multiplying ^{}s。您可以用以下内容表示牌组并查找人脸卡:

face_map = {'A':11, 'J':10, 'Q':10, 'K':10}
deck = list('A23456789JQK'*4)

使用这个新的deckface_map,您可以用face_map.get(card) or int(card)查找任何给定卡的值,这将返回任何人脸卡的检索值,或非人脸卡的整数值。下面是一个演示:

>>> print(*(face_map.get(card) or int(card) for card in 'A23456789JQK'))
11 2 3 4 5 6 7 8 9 10 10 10

相关问题 更多 >