相信大家都玩过扑克牌,这个游戏休闲娱乐是很火爆的游戏了,一副扑克牌可以玩出多种花样,那你知道扑克游戏网站是怎么发牌的吗?想起小编刚开始打算学习python的时候,有很大一部分是想自己开发一些游戏,今天小编就带大家以发牌游戏为例,用python开发一款游戏。

游戏介绍:四名牌手打牌,电脑随机將52张牌(不合大、小王)发给四名牌手,并在屏幕上显示每位牌手的牌。

代码:class Card():

""" A playing card. """

RANKS=["A","2","3","4","5","6","7","8","9","10","J","Q","K"] #牌面数字1-13

SUITS=["梅","方","红","黑"]

#梅为梅花,方为方钻,红为红心,黑为黑桃

def __init__(self,rank,suit,face_up=True):

self.rank=rank #指的是牌面数字1-13

self.suit=suit #suit指的是花色

self.is_face_up=face_up #是否显示牌正面,True为正面,False为牌背面

def __str__(self): #print()

if self.is_face_up:

rep=self.suit+self.rank #+" "+str(self.pic_order())

else:

rep="XX"

return rep

def flip(self): #翻牌方法

self.is_face_up=not self.is_face_up

def pic_order(self): #牌的顺序号

if self.rank=="A":

FaceNum=1

elif self.rank=="J":

FaceNum=11

elif self.rank=="Q":

FaceNum=12

elif self.rank=="K":

FaceNum=13

else:

FaceNum=int(self.rank)

if self.suit=="梅":

Suit=1

elif self.suit=="方":

Suit=2

elif self.suit=="红":

Suit=3

else:

Suit=4

return (Suit-1)*13+FaceNum

class Hand( ):

""" A hand of playing cards. """

def __init__(self):

self.cards=[]

def __str__(self):

if self.cards:

rep=""

for card in self.cards:

rep+=str(card)+"\t"

else:

rep="无牌"

return rep

def clear(self):

self.cards=[]

def add(self,card):

self.cards.append(card)

def give(self,card,other_hand):

self.cards.remove(card)

other_hand.add(card)

class Poke(Hand):

""" A deck of playing cards. """

def populate(self): #生成一副牌

for suit in Card.SUITS:

for rank in Card.RANKS:

self.add(Card(rank,suit))

def shuffle(self): #洗牌

import random

random.shuffle(self.cards) #打乱牌的顺序

def deal(self,hands,per_hand=13):

for rounds in range(per_hand):

for hand in hands:

top_card=self.cards[0]

self.cards.remove(top_card)

hand.add(top_card)

if __name__=="__main__":

print("This is a module with classed for playing cards.")

#四个玩家

players=[Hand(),Hand(),Hand(),Hand()]

poke1=Poke()

poke1.populate() #生成一副牌

poke1.shuffle() #洗牌

poke1.deal(players,13) #发给玩家每人13张

#显示四位牌手的牌

n=1

for hand in players:

print("牌手",n,end=":")

print(hand)

n=n+1

input("\nPress the enter key to exit.")

到了这一步,一款发牌游戏基本就算完成了,其实还是可以添加一点游戏背景音乐的,感兴趣的小伙伴们可以尝试下哦~更多python学习推荐:python学习网。

python编的游戏可以直接玩吗_怎么用python开发游戏?相关推荐

  1. Python编曲实践(十一):通过PyQt5和PyGame开发的简易MIDI电钢琴,支持键盘控制、基础存储、音符可视化及调性提示等功能

    前言 这个项目是我在半年前从零开始进行开发的,主要是为了在学习Python编曲初期通过开发这一个电钢琴界面来练练手,并实现一些通用的基础函数来方便后续的项目使用.这一电钢琴软件的功能无法与正统的商业软 ...

  2. maya python 游戏与影视编程指南_《Maya Python游戏与影视编程指南》【价格 目录 书评 正版】_中国图书网...

    致谢 xi引言:欢迎使用maya python xii第 1 部分 python和maya的基础知识 1第 1 章 maya 命令引擎和用户界面 21.1 与maya 进行交互 3 maya 嵌入式语 ...

  3. api游戏编程鼠标选择拖动_如何选择合适的游戏鼠标

    api游戏编程鼠标选择拖动 You don't need a gaming mouse to play PC games-just about any mouse with two buttons a ...

  4. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  5. 学python应该掌握的英语单词怎么写_想学Python但是有好多英语单词不认识,Python的常见英语单词都在这儿...

    想学python但是有好多英文单词不认识怎么办? 以下是python代码编写和提示信息中的常用和常见的英文单词. 不需要背,看得多了用到的多了就熟悉了. 另外,我为大家准备了2020最新的学习资料,路 ...

  6. python获取实时基金数据由银河证券提供_我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量...

    原标题:我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量 最近,越来越多的研究员.基金经理甚至财务会计领域的朋友,向小编咨询:金融人需要学Python么? 事实上在2019年,这已 ...

  7. python天天向上每十天休息一天_统计师的Python日记【第十天:数据聚合】

    回顾一下: 第1天学习了Python的基本页面.操作,以及几种主要的容器类型. 第2天学习了python的函数.循环和条件.类. 第3天了解了Numpy这个工具库. 第4.5两天掌握了Pandas这个 ...

  8. python控件随窗口变化而适配_如何实现python tkinter控件随窗口变化?

    不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...

  9. python中能够处理的最大整数是_实例讲解Python中整数的最大值输出

    在Python中可以存储很大的值,如下面的Python示例程序: x = 10000000000000000000000000000000000000000000; x = x + 1 print ( ...

最新文章

  1. GigaScience:ASaiM基于Galaxy微生物组分析框架
  2. 山西电大统考英语和计算机试题,2017年电大统考计算机试题及答案.doc
  3. 5G UE — USIM Card — 5G 的 USIM 卡
  4. JIRA配置手册 (3):字段和界面
  5. ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计
  6. OGC和Khronos建立合作关系,共同推动地理信息和3D图形社群的交互操作
  7. 完全虚拟化和半虚拟化区别
  8. 【Python CheckiO 题解】Bigger Price
  9. day16 java的访问控制权限
  10. JS 相等判断 / 类型判断
  11. 1192. [HNOI2006]鬼谷子的钱袋【进制】
  12. 手机系统S40 S60 是什么意思?
  13. 打印计算机管理在哪里,电脑上打印过的文件在哪儿找? 只要4步
  14. 手机游戏后台服务整体架构
  15. input 框隐藏光标问题
  16. 7-3 是不是太胖了
  17. 面向园区网的全数字化网络架构 - Cisco DNA介绍
  18. 微信小程序毕业设计开题报告_springboot音乐网站
  19. 论坛帖子(文章)点赞功能设计
  20. python编写超市销售系统_Python基础项目:超市商品销售管理系统

热门文章

  1. [Google API](1)简介
  2. java spring 单例_spring怎么实现单例模式?
  3. python for 循环中使用 remove 删除列表中的元素
  4. mysql''和null,mysql中NULL和null的区别
  5. jpa中使用Query判断条件查询
  6. 阿里云配置服务器报:bind: cannot assign requested address
  7. js加载html的head偶尔失效,外部 js 文件偶尔会加载失败
  8. 三阶魔方还原步骤图_(六)最简单的三阶魔方入门教程——顶面还原
  9. pandas describe函数_PANDAS: 新手教程 一
  10. assume用法及意思_英语单词Think, Suppose, Assume, Presume的区别