首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在字典之间移动项目?

如何在字典之间移动项目?
EN

Stack Overflow用户
提问于 2022-03-08 18:27:58
回答 2查看 93关注 0票数 0

我现在正在做一个BlackJack程序,我想在一本字典里做一副完整的卡片,比如..。

代码语言:javascript
复制
"card" : points
代码语言:javascript
复制
cards = {
"2S" : 2,
"2H" : 2,
"2D" : 2,
"2C" : 2,
"3S" : 3,
"3H" : 3,
"3D" : 3,
"3C" : 3
.
.
.
"JS" : 10,
"JH" : 10,
"JD" : 10,
"JC" : 10,
}

..。然后将随机卡片添加到其他字典中(玩家或计算机),从主甲板移除或移至:

代码语言:javascript
复制
player_cards = {}
computer_cards = {}

如何将随机项从cards字典移动到其他字典?交易结束后,牌将从主甲板上消失,并出现在玩家和电脑上。

EN

回答 2

Stack Overflow用户

发布于 2022-03-08 18:37:24

代码语言:javascript
复制
import random
random_card = random.choice(list(cards))
player_cards[random_card] = cards[random_card]
票数 0
EN

Stack Overflow用户

发布于 2022-03-08 18:53:33

请澄清你的问题

我假设字典“卡片”中的值是每个面和每个值所剩的牌数,但这没有什么意义,因为你有多个2把黑桃(我想这意味着你使用了多个甲板?)但这意味着可以连续画两个黑桃)。

如果这是你想要的,那么

代码语言:javascript
复制
import random 
drawn=random.choice([k for k in cards for x in range(cards[k])])

#If it is the player's turn
player_cards[drawn]=1

#If it is the computer's turn
player_cards[drawn]=1

如果由于相同的索引键连续绘制同一张卡片,则此代码将遇到问题。因此,我认为将player_cards和computer_cards设置为字典的意义。如果您想要允许绘制相同的卡片,将他们变成列表,并简单地附加到他们抽签卡将是容易得多。

编辑:

当卡被拖到玩家/计算机的甲板上后,卡片就会从普通的甲板上消失,

代码语言:javascript
复制
cards[drawn]-=1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71399882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档