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基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则