大佬教程收集整理的这篇文章主要介绍了第32期-洗牌,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
扑克(英文:Poker),代指两种含义:一是指纸牌(playing cards);二是泛指以用纸牌这种游戏道具来玩的游戏,称为扑克游戏,如德州扑克。一副扑克牌共有54张牌,其中52张是正牌,另2张是副牌(大王和小王)。52张正牌又均分为13张一组,并以黑桃、红桃、梅花、方块四种花色表示各组,每组花色的牌包括从1-10(1通常表示为A)以及J、Q、K标示的13张牌,玩法千变万化,多种玩法,如比较典型的玩法斗地主。要求先从一副牌中挑出六张排,再给ABCD四个人随机分剩下的排,再随机指任一个人为地主,为其加上地主牌,最后再输出各家的牌
一种说法是由唐代天文学家张遂发明,最初称做“叶子戏”,因为纸牌只有树叶那么大。宋代文学家欧阳修在《归田录》中也有对“叶子戏”的记载,它是由文字游戏发展而来。到了元朝,马可波罗来中国游历,很长一段时间在中国的宫廷里担任官职,和上层知识分子过往甚密,学会了这一游戏。后来把它传播到了欧洲。一开始,它只是贵族们的奢侈品,但是因为它造价低廉、玩法多样,又容易学,很快就在民间流行开来。欧洲人根据自己的文化和传统,对纸牌游戏进行了改进,最终出现了“扑克牌”。还有一种说法,相传早在秦末楚汉相争时期,大将军韩信为了缓解士兵的思乡之愁,发明了一种纸牌游戏,因为牌面只有树叶大小,所以被称为“叶子戏”。(“叶子牌”,有两个手指大小。长8公分,阔2.5公分的“叶子牌”,用丝绸及纸裱成,图案是用木刻版印成的)。扑克牌的54张模式解释起来也非常奇妙,有兴趣的小伙伴可以去研究研究
import random suits = ['ɦ5;', '♠', '♣', '♦'] cardstr = ['J', 'Q', 'K', 'A'] cardnum = [str(i) for i in range(2, 11)] cardking = ['大王', '小王'] card = [] for suit in suits: for num in cardnum: card.append(suit + num) for str in cardstr: card.append(suit + str) card = card + cardking random.shuffle(card) 地主牌=random.sample(card,6) x=random.choice(['A','B','C','D']) for i in 地主牌: card.remove(i) A = [] B = [] C = [] D = [] for i in range(len(card)): if i % 4 == 0: A.append(card[i]) if i % 4 == 1: B.append(card[i]) if i % 4 == 2: C.append(card[i]) if i % 4 == 3: D.append(card[i]) eval(X).extend(地主牌) print(f'地主牌是{地主牌},地主是{x}') print(f'A:{A}') print(f'B:{B}') print(f'C:{C}') print(f'D:{D}')
第1行: 引入random模块第3-6行: 将所有扑克牌中出现的数字及符号等作为列表列出第8-14行: 根据刚刚的数字与符号的列表,将一副牌中的元素用列表列出第15行: 使用random.shuffle方法将列表中的元素随机打乱,相当于洗牌第16-19行: 随机选出六张牌作为地主牌,并从所有牌中去除这六张牌,并随机选择地主第20-23行: 为ABCD四位角色创建列表,用于存放各位的牌第24-32行: 由于之前的扑克牌已经随机打乱,模仿发牌的方式,将这些牌每四张分给同一个人第33行: 为选择的地主加上地主牌第34-38行: 打印地主、地主牌以及ABCD各位的牌
代码运行结果为:
这里用到了random模块和eval函数,简单讲解下这两个:random模块1. random.random() 生成一个0-1的随机浮点数2. random.randint(a,b) 生成一个a-b的随机整数(包括a和b)3. random.randrange(a,b) 生成一个a-b的随机整数(不包括a和b)4. random.shuffle(X) 将一个序列进行重新排序5. random.choice(X) 返回一个序列中的一个随机元素6. random.uniform(a,b) 用于生成指定范围内的随机浮点数7. random.sample(sequence, k) 返回一个序列中的k个随机元素
eval()函数eval() 函数用来执行一个字符串表达式,并返回表达式的值。语法:eval(expression[, globals[, locals]])参数说明:expression -- 表达式。globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
例如:x = 7eval( '3 * x' )21
以上是大佬教程为你收集整理的第32期-洗牌全部内容,希望文章能够帮你解决第32期-洗牌所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。