Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.5 抽两张牌比较大小

news2024/11/25 8:52:53

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

项目1.5   抽两张牌比较大小

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 = []

# 两个嵌套的循环创建一个包含牌的字典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)

# 用户通过输入'h'或'l'来猜测下一张牌的大小。
answer = input("猜猜下一张牌是大于还是小于当前的牌: " +
               currentCardDict['suit'] + currentCardDict['rank'] +
               "(输入 h 或 l)")

# 抽取第二张牌,将该牌的信息以字典形式保存在nextCardDict中
nextCardDict = getCard(gameDeckList)

if answer == 'h':
    # 在条件判断语句中,比较下一张牌的值与当前牌的值。
    if nextCardDict['value'] > currentCardDict['value']:
        print("你猜对了")

    else:
        print("你猜错了")

elif answer == 'l':
    if nextCardDict['value'] < currentCardDict['value']:
        print("你猜对了")

    else:
        print("你猜错了")

print(nextCardDict['suit'] + nextCardDict['rank'])

效果如下:

 

程序分析:

一个简单的纸牌游戏,主要包括洗牌、抽牌和比较牌的功能。

程序中,比较牌的功能是通过判断用户的猜测和抽取的下一张牌的值来确定是否猜对了。下面是比较牌的具体步骤:

  1. 用户通过输入'h'或'l'来猜测下一张牌的大小。'h'代表猜测下一张牌的值会比当前牌的值更高(大于),'l'代表猜测下一张牌的值会比当前牌的值更低(小于)。

  2. 程序使用条件语句对用户的猜测进行判断。如果用户输入为'h',则进入条件判断语句if answer == 'h':

  3. 在条件判断语句中,比较下一张牌的值nextCardDict['value']与当前牌的值currentCardDict['value']

  4. 如果下一张牌的值大于当前牌的值,即nextCardDict['value'] > currentCardDict['value']为真,则输出"你猜对了"的提示信息。

  5. 否则,即下一张牌的值小于或等于当前牌的值,输出"你猜错了"的提示信息。

  6. 最后,无论猜对与否,都会输出下一张牌的花色和点数,通过print(nextCardDict['suit'] + nextCardDict['rank'])实现。

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

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

相关文章

elementui el-image组件 点击预览图片

效果&#xff1a;点击单个图片&#xff0c;查看大图 <template><el-container class"platform-list-page"><el-main class"stationList"><data-tableref"DataTable":default-show-type"defaultShowType":default…

Axure教程—对称对比图(中继器)

本文将教大家如何用AXURE中的中继器制作对称对比图 一、效果 预览地址&#xff1a;https://c517td.axshare.com 二、功能 修改中继器的数据&#xff0c;可自动生成对比图 三、制作 1、中继器 拖入一个中继器&#xff0c;并对其赋值&#xff0c;如图&#xff1a; 2、中继器内部…

web前端Tips:断点续传如何实现?

在Web前端中实现断点续传功能的一种常见方式是使用HTTP Range请求和文件分片上传。 以下是一个简单的断点续传实现的步骤&#xff1a; 前端将要上传的文件分成多个固定大小的片段&#xff08;chunk&#xff09;&#xff0c;例如每个片段的大小为1MB。当用户选择上传文件时&am…

【C/C++数据结构与算法】C语言扫雷游戏

目录 项目分析 外部头文件 初始化 打印 扫雷游戏函数 main函数 项目分析 游戏需要自定义地图的大小、埋雷的数量通过输入坐标进行扫雷&#xff0c;输入的坐标是埋雷的地方&#xff0c;则游戏失败输入的坐标未埋雷&#xff0c;则该坐标显示周围8个坐标总共的雷数游戏初始…

Redis入门指南:面向测试工程师

现在测试工程师面试难度越来越大&#xff0c;关于技术方面考察&#xff0c;很多面试官经常会问你是否了解过Redis缓存中间件&#xff0c;这道题一方面是考察你是否对后端技术有一定了解&#xff0c;另一方面也考察你测试工作的深浅。 所以本文将由浅到深、由易到难列举Redis相…

亿发软件:智慧中医馆一体化系统解决方案,实现中医药煎配信息化

近年来&#xff0c;随着中药制造领域先进技术的大力推广和应用&#xff0c;先进制造技术的融合对关键工艺和装备进行了革新。传感器、过程检测技术、自动化设备和信息管理系统的采用显著提高了中药汤剂的生产。下面我们来探讨一下中药煎配信息化管理系统&#xff1a;中药生产过…

photoshop beta正在面临高峰 用不了报错的解决方法

作为一款非常实用的修图软件&#xff0c;photoshop beta是很多正在工作的白领都会使用的&#xff0c;我们可以在其中完成图片的制作&#xff0c;方便又快捷&#xff0c;为大家的工作提供了更多便捷的服务。不过最近也有部分用户在使用这个软件的时候出现了正在面临高峰的报错&a…

LeetCode·1262. 可被三整除的最大和·贪心

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/greatest-sum-divisible-by-three/solutions/2314049/tan-xin-zhu-shi-chao-ji-xiang-xi-by-xun-r0n76/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作者获得…

企业数字化转型的“整体规划”与“人才建设”有多重要?

超级干货&#xff01;&#xff01;全文爆肝5000字&#xff0c;一篇文章带你全面掌握低代码起源以及数字化转型的整体规划与人才建设&#xff0c;本文无废话&#xff0c;全程高能&#xff0c;全部都是来自于实践经验&#xff0c;纯小白也能看懂。 建议先点赞收藏&#xff0c;码…

电脑出现“无法启动此程序,因为计算机中丢失MSVCR71.dll”怎么办?

MSVCR71.dll是一个动态链接库&#xff0c;是Windows系统用于操作应用程序的文件。当某个应用程序需要文件中的某个函数时&#xff0c;将调用DLL文件。MSVCR71.dll错误通常出现于启动应用程序时&#xff0c;因此我们会收到“无法启动此程序&#xff0c;因为计算机中丢失MSVCR71.…

从0到1精通自动化测试,pytest自动化测试框架,环境准备与入门(一)

目录 一、前言 二、pytest简介 三、安装pytest 四、快速开始 五、写个测试类 六、pytest用例规则 一、前言 先说下为什么要学pytest&#xff0c;在此之前相信大伙已经掌握了python里面的单元测试单元测试框架&#xff0c;那再学一个框架肯定是需要学习时间的 刚开始我原…

019: vue中使用fetch读取本地txt文件

第019个 查看专栏目录: VUE — element UI 在做卫星项目的时候&#xff0c;会将两行根数放在txt文件中&#xff0c;放在public的文件夹中&#xff0c; 如何读取呢&#xff1f; 可以用以下方法&#xff1a; 方法1 loadFile(name) { const xhr new XMLHttpRequest() const okS…

【人工智能】— 无监督学习、K-means聚类(K-means clustering)、K-means损失函数,目标函数

【人工智能】— 无监督学习、K-means聚类&#xff08;K-means clustering&#xff09;、K-means损失函数&#xff0c;目标函数 无监督学习聚类&#xff08;Clustering&#xff09;K-means聚类&#xff08;K-means clustering&#xff09;K-means损失函数目标函数策略&#xff1…

pikachu靶场-url重定向

打开测试界面 不安全的URL跳转 发现有四条超链接&#xff0c;依次打开都会进行内容跳转 当我们点击最下面的一个超链接&#xff0c;可以看到url变成了这样 我们对urli进行参数修改 设置payload为 http://ip:port/vul/urlredirect/urlredirect.php?urlhttp://www.baidu.com输…

Unity的IL2CPP

​ 目录 背景 概念 AOT编译器 运行时库 对比 Mono IL2CPP IL2CPP打包注意事项 类型裁剪 泛型实例 泛型方法 背景 在Unity4.6.1 p5以后版本中&#xff0c;在PlayerSettings—>Other Settings—>Scripting Backend有mono和il2cpp两个选项&#xff0c;它们是Un…

面试阿里,嫌弃面试官装逼当场怒怼,“把我的简历还给我”,疑似被拉黑

好家伙&#xff0c;这奇葩事可真是多&#xff0c;前两天和粉丝聊天&#xff0c;他说前段时间面试阿里的测试岗&#xff0c;最后和面试官干起来了。 我问他为什么&#xff0c;他说没啥&#xff0c;就觉得面试官太装B了&#xff0c;就爱问一些虚而不实的东西&#xff0c;显得自己…

Web自动化中常用的跳过验证码操作

目录 前言 通过cookies值登录 通OCR识别验证码 总结 前言 自动化测试中经常需要避免手动输入验证码的操作&#xff0c;因为这会增加测试成本&#xff0c;耗费测试人员的时间。通过自动化程序跳过验证码&#xff0c;可以减少测试时间&#xff0c;提高测试效率。 安静今天通过几个…

增值税高企业发展受限怎么办?采用此方法可化险为夷!

增值税高企业发展受限怎么办&#xff1f;采用此方法可化险为夷&#xff01; 《税筹顾问》专注于园区招商&#xff0c;您的贴身节税小能手&#xff0c;合理合规节税 企业的发展&#xff0c;一方面需要依靠自身的生产经营&#xff0c;那么另一方面就需要在一些支出上尽可能的开源…

如何用 Python 给树莓派 Pico RP2040 编程

使用 MicroPython&#xff0c;仅用 8 行代码&#xff0c;我们就可以实现 LED 闪烁程序。 下载安装 Python IDE&#xff1a;Thonny Thonny 是 一个面向初学者的 Python IDE 环境&#xff0c;自带 Python&#xff0c;相对简单&#xff0c;比较容易上手。对于树莓派 Pico 开发&am…

实验篇(7.2) 12. 站对站安全隧道 - 仅一方发起连接(FortiGate-IPsec) ❀ 远程访问

【简介】上一篇实验发现&#xff0c;两端都是可以远程的公网IP的话&#xff0c;两端防火墙都可以发出连接请求&#xff0c;并且都能够连通。这样的好处是安全隧道不用随时在线&#xff0c;只在有需求时才由发起方进行连接。但是现实中很多情况下只有一端公网IP可以远程&#xf…