Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.4 打印牌的点数和花色

本文主要是介绍Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.4 打印牌的点数和花色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总项目目标:用面向过程思想设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积分。为后续对比面向对象编程思想做准备。

项目1.4   打印抽出牌的点数和花色

import randomSUIT_TUPLE = ('黑桃', '红心', '梅花', '方块')
RANK_TUPLE = ('A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K')#洗牌函数
def shuffle(deckListIn):deckListOut = deckListIn.copy()  # 生成一副牌的副本random.shuffle(deckListOut)  # 洗牌return deckListOut#抽牌函数
def getCard(deckListIn):thisCard = deckListIn.pop()  # 从牌组中取第一张牌return thisCard#存储生成的初始牌组
startingDeckList = []#两个嵌套的循环创建一个包含牌的字典cardDict,其中包括点数、花色和用于比较大小的值
#并将各张牌的字典添加到startingDeckList列表中。
for suit in SUIT_TUPLE:for thisValue, rank in enumerate(RANK_TUPLE):cardDict = {'rank': rank, 'suit': suit, 'value': thisValue + 1}startingDeckList.append(cardDict)#洗牌,将返回的洗牌后的牌组赋值给gameDeckList
gameDeckList = shuffle(startingDeckList)#抽取一张牌,将该牌的信息以字典形式保存在currentCardDict中
currentCardDict = getCard(gameDeckList)#通过字典索引将抽取的牌的点数、花色和用于比较大小的值分别赋值
currentCardRank = currentCardDict['rank']
currentCardValue = currentCardDict['value']
currentCardSuit = currentCardDict['suit']#打印输出当前抽取的牌的信息,包括花色和点数,以及用于比较大小的值
print('当前抽出的牌是', currentCardSuit+currentCardRank)
print("当前抽出的牌用于比较大小的值为", currentCardValue)

效果如下:

程序分析:

这段程序的功能是模拟一副扑克牌的洗牌和抽牌过程,并输出当前抽取的牌的信息。

程序定义了两个函数用于洗牌和抽牌

接下来,创建一个空列表startingDeckList,用于存储生成的牌组。

通过两个嵌套的循环创建一个包含牌的字典cardDict,其中包括点数、花色和用于比较大小的值,并将该字典添加到startingDeckList列表中。

接下来,调用shuffle()函数对startingDeckList进行洗牌,将返回的洗牌后的牌组赋值给gameDeckList

然后,调用getCard()函数从洗牌后的牌组gameDeckList中抽取一张牌,将该牌的信息以字典形式保存在currentCardDict中。

通过字典索引将抽取的牌的点数、花色和用于比较大小的值分别赋值给currentCardRankcurrentCardSuitcurrentCardValue变量。

最后,程序打印输出当前抽取的牌的信息,包括花色和点数,以及用于比较大小的值。

注意:由于牌组是随机洗牌的,每次运行程序的结果可能不同。

这篇关于Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.4 打印牌的点数和花色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847561

相关文章

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停