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

news2024/9/23 1:25:58

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

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

import random

SUIT_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 = []
for suit in SUIT_TUPLE:
    for thisValue, rank in enumerate(RANK_TUPLE):
        cardDict = {'rank': rank, 'suit': suit, 'value': thisValue + 1}
        startingDeckList.append(cardDict)

gameDeckList = shuffle(startingDeckList)
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变量。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

容器(第九篇)ansible-playbook

Ansible 的脚本 --- playbook 剧本 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3&…

pytorch搭建LeNet网络实现图像分类器

pytorch搭建LeNet网络实现图像分类器 一、定义LeNet网络模型1,卷积 Conv2d2,池化 MaxPool2d3,Tensor的展平:view()4,全连接 Linear5,代码:定义 LeNet 网络模型 二、训练并保存网络参数1&#xf…

GAMES101笔记 Lecture03 Transformation

目录 Transoformation(变换)Why stuty transformation(为什么要学习变换呢?)2D transformations(2D变换)Scale transformation(缩放变换)Reflection Matrix(反射矩阵)Shear Matrix(切变矩阵) Rotate transformation(旋转变换)Linear Transforms Matrices(线性变换 矩阵) Hom…

Java泛型详解,史上最全图文详解

泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它。 毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课。 一:泛型本质 Java 泛型(generics&#…

C#程序设计——Windows应用程序开发,1、初步掌握Windows应用程序的设计方法。2、掌握常用窗体控件的使用方法。

Windows应用程序开发 一、实验目的 初步掌握Windows应用程序的设计方法。掌握常用窗体控件的使用方法。 二、实验内容 1、设计一个Windows应用程序,创建一个用于添加学生个人基本信息的窗体,窗体下方法同时滚动信息“天行健&#xf…

前端学习-html基础

html学习与总结 一、基础认知 1.1.1 认识网页(了解) ➢ 问题1:网页由哪些部分组成? ✓ 文字、图片、音频、视频、超链接 ➢ 问题2:我们看到的网页背后本质是什么? ✓ 前端程序员写的代码 ➢ 问题3&a…

设计模式的几大原则

设计模式原则 前言一.单一职责原则1.1 定义1.2 例子1.3 总结 二.里氏替换原则2.1 定义1.2 例子1.3 总结 三.依赖倒置原则3.1 定义3.2例子3.3总结 四.接口隔离原则4.1 定义4.2 例子4.3 总结五.迪米特法则5.1 定义5.2 例子5.3 总结 六.开闭原则6.1 定义6.2 例子6.3 结论 前言 设…

MongoDB复制(副本)集实战及其原理分析-04

MongoDB复制集 复制集架构 在生产环境中,不建议使用单机版的MongoDB服务器。 原因如下: 单机版的MongoDB无法保证可靠性,一旦进程发生故障或是服务器宕机,业务 将直接不可用。 一旦服务器上的磁盘损坏,数据会直接丢…

UDS系列-31服务(Routine Control)

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,本文介绍例程控制服务RoutineControl,该服务的目的是Client端使用Routine Control服务来执行定义的步骤序列并获取特定序列的相关结果。这个服务经常在EOL、Bootloader中使用,比如,检查刷写条件是否满足、擦除内存、覆盖正…

post接口请求测试,通俗易懂

目录 前言: GET方法和POST方法传递数据的异同 POST方法如何传递数据 接口测试软件简介 POST请求接口的测试 测试方法 3.保存接口测试用例,生成自动化测试套件 总结 前言: Post请求是HTTP中请求方法之一,用于向服务器提交…

AI 绘画(2):Ai模型训练,Embedding模型,实现“人物模型“自由

文章目录 文章回顾感谢人员题外话Ai绘画公约Ai模型训练硬件要求显存设置查看显存大小显存过小解决方法 视频教程前期准备SD配置设置SD设置配置SD训练配置pt生成训练集收集训练集要求截图软件推荐训练集版权声明一键重命名图片训练图片来源批量修改图片尺寸 开始训练导入训练集&…

MQTTX的使用

1.MQTT介绍 MQTT是一种常用的物联网协议。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅通信协议,用于在物联网(IoT)和机器对机器(M2M)通信中传输消息。 MQTT协议被设计用…

013.【排序算法】合并排序法

1. 合并排序法 合并排序法是针对已经排序好的两个或两个以上的数列,通过合并的方式,将其组合成一个大的且排序好的数列。首先是将无序的数列分成若干小份,分若干份的规则就是不断把每段长度除以2(对半分),…

Jmeter断言详细使用教程

目录 前言: 断言介绍与使用 响应断言 断言持续时间 XML断言 1、响应断言 2、JSON Assertion 3、Size Assertion(见图知意) 4、JSR223 Assertion JSR223 Assertion实例: 5、XPath Assertion 6、Compare Assertion 7、断言持续时间…

如何获得忠诚的铁粉

目录 1.选择热门主题 2.提供独特观点(原创精神) 3.写作风格(目录定位分点总结) 4.提供有价值的内容 5.总结: 📢导语:赢得铁粉(粉丝)的支持对于一个作者来说至关重要。…

前端Vue加载中页面动画弹跳动画loading

前端Vue加载中页面动画弹跳动画loading&#xff0c; 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id13091 效果图如下&#xff1a; #### 使用方法 使用方法 <!-- ref:唯一ref top&#xff1a;距离中间顶部距离 --> <cc-loading ref&…

Postman大势已去,Apifox的时代已到来

目录 前言&#xff1a; 前情简介&#xff1a;亲身经历节选 Code: 403 “将我踢飞” 浓眉大眼的 Swagger 把我欺骗 工作提效的版本答案 为什么是Apifox 贴心为你 写在最后 前言&#xff1a; Apifox是一款基于web的API设计工具&#xff0c;提供了简洁明了的界面和丰富的…

Debezium系列之:Outbox Event Router

Debezium系列之&#xff1a;Outbox Event Router 一、认识Outbox Event Router二、使用发件箱模式进行可靠的微服务数据交换三、双写问题四、发件箱模式五、基于变更数据捕获的实现六、发件箱表七、发送事件到发件箱八、注册 Debezium 连接器九、主题路由十、Apache Kafka 中的…

交叉编译libcurl libosip libeXosip(包含openssl)

交叉编译libcurl ./configure --with-ssl/home/zx/zxapp/openssl-1.1.0l/output --without-zlib --enable-shared --enable-static --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc --prefix$PWD/build 交叉编译openssl ./config no-asm shared -fPIC --prefix/home/…

ColorUI 全网最全使用文档(建议收藏)

Color UI 我想大家都知晓吧&#xff0c;我就不过多阐述了&#xff0c;是 文晓港 大佬开发的一款适应于H5、微信小程序、安卓、ios、支付宝的高颜值&#xff0c;高度自定义的 Css 组件库.&#xff0c;属于出道即巅峰的史诗级大作&#xff0c;众所周知&#xff0c;万物皆可 Color…