侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

python模拟实现斗地主发牌

Python  /  管理员 发布于 7年前   232

题目:趣味百题之斗地主

扑克牌是一种非常大众化的游戏,在计算机中有很多与扑克牌有关的游戏。例如,在Windows操作系统下自带的纸牌、红心大战等。在扑克牌类的游戏中,往往都需要执行洗牌操作,就是将一副牌完全打乱,使其排列没有规律。

要求:

1.54张扑克牌发个3个玩家,农民17张,地主20张。
2.自动生成一幅扑克牌组;洗牌;发牌到玩家手中;将玩家手中扑克牌按花色大小整理好。**

'''趣味百题-发扑克牌-斗地主请编程实现发扑克牌Version: 0.1Author: jasnDate: 2020-01-01主要知识点:random的用法,类的定义和调用主要功能点:用Python的类实现斗地主的初始化、洗牌、发牌、抢地主、理牌、花色对应。代码如下'''import randomclass doudizhu:  #定义54张牌  def __init__(self):    self.a=[]    for i in range(54):      self.a.append(i)  #洗牌  def xipai(self):    random.shuffle(self.a) #洗牌    n = random.randint(1, 54)    b = self.a[:n] # 从n的位置切牌    c = self.a[n:]    self.a = b + c    #发牌  def fapai(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  #抢地主  def qiangdizhu(self):    i=random.randint(1,3)    self.dizhu=i  #定义一个地主的实例    if i == 1:      self.user1+=self.user4    if i == 2:      self.user2+=self.user4    if i == 3:      self.user3+=self.user4  #码牌  def mapai(self):    self.user1.sort(reverse=True)  ##从小到大码牌    self.user2.sort(reverse=True)    self.user3.sort(reverse=True)  #牌序和花色一一对应  def yingshe(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=''    for i in range(len(self.user1)):      paiuser1+=zdpai[self.user1[i]]+' ' #以字符串的形式将牌储存起来    paiuser2 = ''    for i in range(len(self.user2)):      paiuser2 += zdpai[self.user2[i]] + ' '    paiuser3 = ''    for i in range(len(self.user3)):      paiuser3 += zdpai[self.user3[i]] + ' '    paiuser4 = ''    for i in range(len(self.user4)):      paiuser4 += zdpai[self.user4[i]] + ' '    self.user1 = paiuser1 #把花色对应好的牌的序列重新赋给三个玩家的实例属性    self.user2 = paiuser2    self.user3 = paiuser3    self.user4 = paiuser4if __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内置数据类型list各方法的性能测试过程解析
    下一条:
    python全局变量引用与修改过程解析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客