'''

趣味百题-发扑克牌-斗地主

请编程实现发扑克牌

Version: 0.1

Author: jasn

Date: 2020-01-01

主要知识点:random的用法,类的定义和调用

主要功能点:用Python的类实现斗地主的初始化、洗牌、发牌、抢地主、理牌、花色对应。代码如下

'''

import random

class 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 = 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模拟实现斗地主发牌相关推荐

  1. python实现单机斗地主_python模拟实现斗地主发牌

    题目:趣味百题之斗地主 扑克牌是一种非常大众化的游戏,在计算机中有很多与扑克牌有关的游戏.例如,在Windows操作系统下自带的纸牌.红心大战等.在扑克牌类的游戏中,往往都需要执行洗牌操作,就是将一副 ...

  2. python棋牌游戏开发之斗地主

    斗地主这个游戏的流程主要有,洗牌,发牌,出牌,而最重要的便是出牌了,出牌里包含着游戏的牌型,所以这里就先给大家讲讲我进行牌型判断的思路. """ 牌型定义:1.单张2.对 ...

  3. 顶尖科技棋牌游戏开发_如何接受顶尖科技公司的采访

    顶尖科技棋牌游戏开发 If you've ever wondered how to land an interview with top tech companies or know someone ...

  4. 棋牌游戏开发之地主算法判断牌型

    棋牌游戏开发咨询 QQ:325131039 棋牌游戏开发咨询交流群: 490287966 由于近年来网络棋牌游戏的火爆导致个各个地区的特色棋牌游戏进入开发的红火时期,也有越来越多的团队个人开始研究棋牌 ...

  5. 棋牌游戏开发会low吗 中国棋牌文化底蕴探究

    不知道大家是否有过这样一种念头:觉得棋牌游戏很low,赶不上"王者荣耀""吃鸡"等大型网游,现在的人哪会去玩棋牌游戏呢!摩天游棋牌游戏开发小编要告诉大家,这是一 ...

  6. 约局模式棋牌游戏开发成2019风向标 力图精细化可持续发展

    自2017年起,棋牌游戏开发行业越来越旺,据统计,中国每五个游戏用户中,就有一个是棋牌类游戏玩家.面对如此火热的行业,各大棋牌游戏开发商也是发展不一,一部分拥有雄厚资金和开发实力的大型开发公司,受市场 ...

  7. 为什么手机棋牌游戏开发比PC端开发要复杂?

    现在大家都习惯用手机娱乐,电脑逐渐被淘汰,为了顺应这股趋势,各大棋牌游戏开发商开始钻研于手机棋牌游戏开发,尽最大的努力做到精益求精.摩天游科技十年开发经验告诉大家,一款手机游戏的开发,技术上的问题往往 ...

  8. 浪人棋牌游戏开发教程

    浪人棋牌游戏开发教程 www.langren.net 简单的程序框架. webgame程序构成: 三大部分. 第一是数据流程.第二是程序.第三是美术. 其中,数据流程包括了功能.也只有在功能中才能体现 ...

  9. python飞机大战资料-Python之游戏开发-飞机大战

    Python之游戏开发-飞机大战 想要代码文件,可以加我微信:nickchen121 #!/usr/bin/env python # coding: utf-8 import pygame impor ...

最新文章

  1. 如何用计算机求锐角三角比,9.3用计算器求锐角三角比教学案
  2. 硬核!如何全面系统地自学 Java ?(必看)
  3. php首页下雪源码代码,HTML5实现下雪效果的实例代码分享
  4. oracle 合并重复数据_三天三夜整理出来的数据库常见的面试题,让你直接拿走...
  5. 一定要多角度看事物 | 今日最佳
  6. 刷题总结——xor(ssoj)
  7. Tomcat类加载器为何违背双亲委派模型
  8. Unity 贴图自动匹配材质工具 贴图自动添加到材质球工具 材质球匹配贴图工具 Substance Painter制作的贴图自动匹配材质球工具
  9. 平安科技测试面试经验分享
  10. [FreeBSD] 安全加固
  11. 编写函数求区间[200,3000]中所有的回文数, 回文数是正读和反读都是一样的数
  12. 快递查询 教你一个方法使用物流单号查询物流信息
  13. 性能服务器漫画免费下拉式,奇妙漫画免费漫画
  14. 2.1.1计算机网络(奈氏准则 香农定理 码元 速率 波特 带宽 物理层概念 通信方式 传输方式)
  15. Tita :OKR落地推行的具体方法
  16. 国标解读:关于超温保护部分(GB 4793.6-2008 测量、控制和实验室用电气设备的安全要求)
  17. 笔记本和利用服务器算力直连,顺网云电脑技术突破:实现利用网吧空余算力
  18. netty 默认通道配置初始化
  19. Spark 2.2.1 SQL UDAF用户自定义函数案例
  20. 仿小红书根据图片高度自适应viewpager高度轮播图

热门文章

  1. 芦荟天然植物提取物的作用是什么
  2. 使用SQL语句查询学生数据库中学生信息 —14条基本查询语句
  3. Python数据挖掘 数据预处理案例(以航空公司数据为例)
  4. JSON 对象(object)
  5. 2906: CCF倒水问题
  6. 静态方法和非静态方法的区别JAVA
  7. java定时任务工具详解之Quartz
  8. JavaWeb项目的发布
  9. Python实战:批量修改文本文件
  10. C语言学习代码,初学者笔记