洗牌游戏

洗牌游戏:利用list和字典实现对52张扑克牌洗牌,并且输出随机洗牌的结果

已知扑克牌的花色以及牌码(不包括大小鬼)

根据我们已知的扑克牌,现在需要我们利用所学的python知识点,实现扑克牌的重洗,已知扑克牌如下:

'红桃':['A',2,3,4,5,6,7,8,9,10,'J','Q','K']
'黑桃':['A',2,3,4,5,6,7,8,9,10,'J','Q','K'] 
'梅花':['A',2,3,4,5,6,7,8,9,10,'J','Q','K']
'方块':['A',2,3,4,5,6,7,8,9,10,'J','Q','K']

python列表的基本用法(简介):

1、列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现;
2、列表里的数据项可以不需要具有相同的类型,如下图中所示;
用逗号分隔不同数据项,最后使用方括号括起来即可
3、列表中的每一项都对应一个索引,第一项的索引为1,第二项的索引为2,……以此类推;
4、列表的索引可以用来进行截取、组合等;
5、可以通过索引去访问列表中的值,例如:

  lista[1] = 2


6、也可以通过索引对列表中的值进行截取;
在这里插入图片描述
7、也可以通过索引直接对列表中的值进行修改;
在这里插入图片描述

实现洗牌的基本思路

针对洗牌,本文用的是random.sample函数,一共有52张扑克牌,从花色和牌号中,每次随机抽取四种花色,抽取13次,每次随机抽取13个牌码,取四次,这样就形成了52张不规则的花色,利用random.sample随机抽取获得的最终值,每次都可以输出不一样的不同的值。
生成带有52种花色的列表1和带有52个牌码元素的列表2,将列表1和列表2按照索引一 一对应,一 一组合,最后形成一个全新的列表,新列表即为全新的排序,输出为洗牌后的结果。

详细的代码

import random                   #导入random模块
list_color = ['红桃','黑桃','梅花','方片']
list = []
allcolor = []
for i in range(13):              #随机抽取,52种颜色
    color1 = random.sample(list_color,4)
    allcolor += color1
    pass
print(allcolor)
list_num = ['A',2,3,4,5,6,7,8,9,10,'J','Q','K']
allnum = []
for i in range(4):               #随机抽取,52张牌码
    num1 = random.sample(list_num,13)
    allnum += num1
    pass
print(allnum)
for i in range(52):              #组合52张牌
    list.append(allcolor[i]+str(allnum[i]))
    pass
print(list)

运行结果示例

运行结果示例:
[‘黑桃’, ‘方片’, ‘梅花’, ‘红桃’, ‘红桃’, ‘方片’, ‘黑桃’, ‘梅花’, ‘方片’, ‘红桃’, ‘梅花’, ‘黑桃’, ‘红桃’, ‘黑桃’, ‘梅花’, ‘方片’, ‘梅花’, ‘黑桃’, ‘红桃’, ‘方片’, ‘梅花’, ‘红桃’, ‘方片’, ‘黑桃’, ‘黑桃’, ‘红桃’, ‘梅花’, ‘方片’, ‘梅花’, ‘黑桃’, ‘方片’, ‘红桃’, ‘方片’, ‘黑桃’, ‘梅花’, ‘红桃’, ‘梅花’, ‘黑桃’, ‘方片’, ‘红桃’, ‘黑桃’, ‘梅花’, ‘方片’, ‘红桃’, ‘红桃’, ‘梅花’, ‘方片’, ‘黑桃’, ‘红桃’, ‘梅花’, ‘方片’, ‘黑桃’]
[6, 9, ‘K’, ‘J’, 3, 8, ‘A’, 5, 2, 10, 7, ‘Q’, 4, 6, 4, ‘J’, 2, 3, ‘A’, ‘K’, 9, 5, ‘Q’, 10, 7, 8, 3, 10, 8, ‘J’, ‘Q’, 9, 4, 5, 7, 6, ‘K’, 2, ‘A’, ‘J’, 3, 9, 8, 6, 5, 7, ‘Q’, ‘A’, 2, ‘K’, 4, 10]
[‘黑桃6’, ‘方片9’, ‘梅花K’, ‘红桃J’, ‘红桃3’, ‘方片8’, ‘黑桃A’, ‘梅花5’, ‘方片2’, ‘红桃10’, ‘梅花7’, ‘黑桃Q’, ‘红桃4’, ‘黑桃6’, ‘梅花4’, ‘方片J’, ‘梅花2’, ‘黑桃3’, ‘红桃A’, ‘方片K’, ‘梅花9’, ‘红桃5’, ‘方片Q’, ‘黑桃10’, ‘黑桃7’, ‘红桃8’, ‘梅花3’, ‘方片10’, ‘梅花8’, ‘黑桃J’, ‘方片Q’, ‘红桃9’, ‘方片4’, ‘黑桃5’, ‘梅花7’, ‘红桃6’, ‘梅花K’, ‘黑桃2’, ‘方片A’, ‘红桃J’, ‘黑桃3’, ‘梅花9’, ‘方片8’, ‘红桃6’, ‘红桃5’, ‘梅花7’, ‘方片Q’, ‘黑桃A’, ‘红桃2’, ‘梅花K’, ‘方片4’, ‘黑桃10’]

运行截图

在这里插入图片描述
注:由于是随机抽取,所以每次运行后的结果都不同,以达到洗牌的效果

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Java实现的洗牌游戏: ```java import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ShuffleGame { public static void main(String[] args) { // 创建一副扑克牌 List<String> deck = new ArrayList<>(); String[] suits = {"♠️", "♥️", "♣️", "♦️"}; String[] ranks = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; for (String suit : suits) { for (String rank : ranks) { deck.add(rank + suit); } } System.out.println("洗牌前的牌组:" + deck); // 洗牌 Collections.shuffle(deck); System.out.println("洗牌后的牌组:" + deck); } } ``` 在这个程序中,我们使用了Java的集合框架中的List来存储一副扑克牌。首先,我们创建一个包含所有扑克牌的List对象,并输出它的内容。然后,我们使用Collections.shuffle()方法对这个List对象进行洗牌操作,并再次输出洗牌后的结果。 运行这个程序,你会看到类似下面的输出结果: ``` 洗牌前的牌组:[A♠️, 2♠️, 3♠️, 4♠️, 5♠️, 6♠️, 7♠️, 8♠️, 9♠️, 10♠️, J♠️, Q♠️, K♠️, A♥️, 2♥️, 3♥️, 4♥️, 5♥️, 6♥️, 7♥️, 8♥️, 9♥️, 10♥️, J♥️, Q♥️, K♥️, A♣️, 2♣️, 3♣️, 4♣️, 5♣️, 6♣️, 7♣️, 8♣️, 9♣️, 10♣️, J♣️, Q♣️, K♣️, A♦️, 2♦️, 3♦️, 4♦️, 5♦️, 6♦️, 7♦️, 8♦️, 9♦️, 10♦️, J♦️, Q♦️, K♦️] 洗牌后的牌组:[9♠️, Q♠️, 8♦️, 4♦️, 7♠️, 5♣️, 10♦️, A♠️, 3♣️, J♦️, 6♦️, 8♣️, K♣️, 4♣️, 7♥️, 9♥️, 2♥️, 6♠️, 2♣️, A♦️, K♦️, 10♠️, 9♣️, 5♠️, A♥️, Q♥️, 2♦️, 3♥️, J♠️, 8♥️, 7♣️, 5♥️, 6♥️, 4♠️, 3♠️, K♠️, J♥️, Q♣️, 10♣️, A♣️, 3♦️, 8♠️, K♥️, 4♥️, 7♦️, 2♠️, J♣️, 10♥️, 6♣️, 5♦️, 9♦️] ``` 这个程序并不是一个完整的洗牌游戏,只是简单地演示了如何使用Java的集合框架来实现洗牌操作。如果你想要实现一个完整的洗牌游戏,需要考虑更多的细节问题,比如如何发牌、如何判断胜负等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值