我正在尝试编程一个(喝酒)游戏叫做:乘公共汽车。我现在的问题不一定是游戏编程,而是生成一副没有任何重复的牌。我在这个论坛里到处找,但是我发现的唯一的东西是如何生成随机卡,而不是如何排除重复。这是我现在拥有的生成卡片的代码:
suitnum = ["spade","club","heart","diamond"]
cardnum = [2,3,4,5,6,7,8,9,10,"jack","queen","king","ace"]
suit1 = random.choice(suitnum)
card1 = random.choice(cardnum)
现在,对于游戏中的每一轮,我以相同的方式生成一张新的牌,只是每一轮的花色和牌名不同。我把先前生成的牌放入每一轮(每一轮都是一个单独的定义),因为我需要它们。我现在的问题是这个代码允许重复发生。我想找到一种方法,基本上产生一个'洗牌'牌组在程序开始时,在每一轮能够参考该牌组和采取的顶牌。我认为这是处理这个问题最简单的方法。有人知道如何编写代码吗,或者有什么更简单的方法来解决我的问题吗?在
谢谢你的帮助,我想出了一个对我有用的方法。我创建了一个如下所示的def:
在每一张我需要抽一张牌的def中,我会参考牌组,要求一张牌,然后将它分成适合自己的面型(我在游戏中需要)。看起来像这样:
^{pr2}$现在,每当我需要另一张不同定义的卡时,我只需将suite1和face1的变量名更改为suit2和face2等
生成卡片列表,然后每次取出一个随机元素:
然后,每次需要新卡时:
^{pr2}$我建议您使用当前的
suitnum
和cardnum
数组生成一个实际的牌组,您可以从中随机挑选卡片。这样,你就可以在你从阵列中取出卡片时删除它们。在相关问题 更多 >
编程相关推荐