【发布时间】:2019-06-15 18:10:33
【问题描述】:
我的任务是在 python 中创建一个非常简单的 Blackjack 版本,你问他们是否想玩,他们说是,然后抽一张牌,上面写着你选择后现在拥有的点数卡,然后问你是否想再玩一次。我需要帮助来实施“积分系统”。
我尝试做一些 if 语句,如果一个数字在列表中,它会给它相同数量的点,但我发现它不起作用。
import random
nummer = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "Kung", "Dam",
"Knekt", "Ess"]
kort = ["♦", "♥", "♣", "♠"]
kortlek = []
for n in range(0, 4):
for x in range(0, 13):
kortlek.append(kort[n] + " " + nummer[x])
d_k = []
svar = input("Do you want to play? (y/n) ")
if svar == "y":
drag = random.choice(kortlek)
print("You got ", drag)
d_k.append(drag)
kortlek.remove(drag)
else:
print("Bye")
基本上我想要它,以便在您抽出一张牌后,它会告诉您您的总点数。
【问题讨论】:
-
创建第二个数组
points保存每张牌的点数(2、3、...、ace),然后在kortlek循环中创建zip那些带有nummer的点,然后使每张卡片成为一个元组(name, points) -
不是
nummer是['2', '3'...]的列表,而是使其成为{'2':2, '3':3...}的字典。这将允许您查找每张卡的价值。这也将帮助您改进创建卡片组的循环,通过循环遍历nummer字典和kort列表本身而不是循环遍历它们的索引。 -
永远不要使用字符串来表示数据,除非该数据是实际的书面文本(卡片不是)。用数字表示卡片,转成字符串输出即可。
标签: python python-3.x blackjack playing-cards