python模拟实现斗地主发牌
小编给大家分享一下python模拟实现斗地主发牌,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
题目:趣味百题之斗地主
扑克牌是一种非常大众化的游戏,在计算机中有很多与扑克牌有关的游戏。例如,在Windows操作系统下自带的纸牌、红心大战等。在扑克牌类的游戏中,往往都需要执行洗牌操作,就是将一副牌完全打乱,使其排列没有规律。
要求:
1.54张扑克牌发个3个玩家,农民17张,地主20张。2.自动生成一幅扑克牌组;洗牌;发牌到玩家手中;将玩家手中扑克牌按花色大小整理好。**
''' 趣味百题-发扑克牌-斗地主 请编程实现发扑克牌 Version:0.1 Author:jasn Date:2020-01-01 主要知识点:random的用法,类的定义和调用 主要功能点:用Python的类实现斗地主的初始化、洗牌、发牌、抢地主、理牌、花色对应。代码如下 ''' importrandom classdoudizhu: #定义54张牌 def__init__(self): self.a=[] foriinrange(54): self.a.append(i) #洗牌 defxipai(self): random.shuffle(self.a)#洗牌 n=random.randint(1,54) b=self.a[:n]#从n的位置切牌 c=self.a[n:] self.a=b+c #发牌 deffapai(self): self.user1=self.a[0:-3:3]#玩家1,获得牌的顺序为0,3,6,9... self.user2=self.a[1:-3:3]#玩家2,获得牌的顺序为1,4,7,10... self.user3=self.a[2:-3:3]#玩家3,获得牌的顺序为2,5,8,11... self.user4=self.a[-3:]#底牌,顺序为51,52,53 #抢地主 defqiangdizhu(self): i=random.randint(1,3) self.dizhu=i#定义一个地主的实例 ifi==1: self.user1+=self.user4 ifi==2: self.user2+=self.user4 ifi==3: self.user3+=self.user4 #码牌 defmapai(self): self.user1.sort(reverse=True)##从小到大码牌 self.user2.sort(reverse=True) self.user3.sort(reverse=True) #牌序和花色一一对应 defyingshe(self): huase=[(0,'方片3'),(1,'梅花3'),(2,'红桃3'),(3,'黑桃3'), (4,'方片4'),(5,'梅花4'),(6,'红桃4'),(7,'黑桃4'), (8,'方片5'),(9,'梅花5'),(10,'红桃5'),(11,'黑桃5'), (12,'方片6'),(13,'梅花6'),(14,'红桃6'),(15,'黑桃6'), (16,'方片7'),(17,'梅花7'),(18,'红桃7'),(19,'黑桃7'), (20,'方片8'),(21,'梅花8'),(22,'红桃8'),(23,'黑桃8'), (24,'方片9'),(25,'梅花9'),(26,'红桃9'),(27,'黑桃9'), (28,'方片10'),(29,'梅花10'),(30,'红桃10'),(31,'黑桃10'), (32,'方片J'),(33,'梅花J'),(34,'红桃J'),(35,'黑桃J'), (36,'方片Q'),(37,'梅花Q'),(38,'红桃Q'),(39,'黑桃Q'), (40,'方片K'),(41,'梅花K'),(42,'红桃K'),(43,'黑桃K'), (44,'方片A'),(45,'梅花A'),(46,'红桃A'),(47,'黑桃A'), (48,'方片2'),(49,'梅花2'),(50,'红桃2'),(51,'黑桃2'), (52,'BlackJoker'),(53,'RedJoker')] zdpai=dict(huase) paiuser1='' foriinrange(len(self.user1)): paiuser1+=zdpai[self.user1[i]]+''#以字符串的形式将牌储存起来 paiuser2='' foriinrange(len(self.user2)): paiuser2+=zdpai[self.user2[i]]+'' paiuser3='' foriinrange(len(self.user3)): paiuser3+=zdpai[self.user3[i]]+'' paiuser4='' foriinrange(len(self.user4)): paiuser4+=zdpai[self.user4[i]]+'' self.user1=paiuser1#把花色对应好的牌的序列重新赋给三个玩家的实例属性 self.user2=paiuser2 self.user3=paiuser3 self.user4=paiuser4 if__name__=='__main__': Player=doudizhu()#将类辅助给playes,方便调用 Player.xipai() Player.fapai() Player.qiangdizhu() Player.mapai() Player.yingshe() print('本局地主是:玩家{}'.format(Player.dizhu)) print('底牌:',Player.user4) print('玩家一:',Player.user1) print('玩家二:',Player.user2) print('玩家三:',Player.user3)
以上是“python模拟实现斗地主发牌”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...