在Python中为扑克牌添加值

2024-04-29 06:37:31 发布

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

所以我试着在卡片上加分,这样我就能计算出每个玩家的得分。 我希望评分系统是这样工作的:2的值是2,计算到ace的值是14,ace是最高的2是最低的。每个套装都有另一个值黑桃=1,红桃=2,钻石=3,梅花=2。我想我可以自己做评分后,我知道如何增加价值的每一张卡和西装,但我不知道如何增加价值,所以可以有人给我一些想法或提示?在

请不要直截了当的代码答案,因为我想知道它是如何做的,而不是只是复制粘贴你的代码。在

甲板规范是

CardList= ["2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"]
SuitList= ["Diamonds", "Clubs", "hearts", "Spades"]
Deck= ["%s of %s" %(X, Y) for X in ValueList for Y in SuitList]

Tags: 答案代码infor系统玩家评分价值
1条回答
网友
1楼 · 发布于 2024-04-29 06:37:31

我把你的牌组和西装单改成了dictionary,这样我就可以把值与卡片和西装联系起来了。很简单,红心值2分,所以"Hearts":2。然后我使用.items()函数从西装列表中获取所有物品的keys, values,我将值存储为v。然后,我使用enumerate来循环CardList,这样我就可以同时得到一个变量i(这是数组中卡片的索引)和卡片的名称X。然后我加了2,因为数组从0开始计数。最后,我实现了pprint,为了使我的输出看起来更干净,您可以在最终版本中删除它。在

import pprint
CardList= ["2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"]
SuitList= {"Spades":1, "Hearts":2, "Diamonds":3, "Clubs":2}
Deck = [["%s of %s" % (X, Y), i + 2 + v] for i, X in enumerate(CardList) for Y, v in SuitList.items()]
pprint.PrettyPrinter(indent=4).pprint(Deck)

输出:

^{pr2}$

相关问题 更多 >