python小游戏——骰子猜大小

❄️作者介绍:奇妙的大歪❄️

🎀个人名言:但行前路,不负韶华!🎀

🐽个人简介:云计算网络运维专业人员🐽

前言

       我们已经基本学完了,逻辑判断和循环的用法,现在开始做一点有意思的事情:设计一个小游戏猜大小。

   

 

  一. 在此之前,还是先行补充一些必要的知识。

       首先,创建一个列表,放入数字,再使用 sum()函数对列表中所有整数求和,然后打印:

a_list = [1,2,3]
print(sum(a_list))

       结果是6 ,这一个应该很好理解。

       接着,Python 中最方便的地方是有很多强大的库支持,现在我们导入一个random的内置库,然后使用它生成随机数:

import random
point1 = random.randrange(1,7)
point2 = random.randrange(1,7)
point3 = random.randrange(1,7)
print(point1,point2,point3)

       结果就不展示了,因为每次打印结果肯定是不一样的,其中random 中的 randrange 方法使用起来就像是range 函数一样,两个参数即可限定随机数范围。
       在正式开始创建函数之前,我们先把游戏规则细化一下:
       游戏开始,首先玩家选择 Big or Small(押大小),选择完成后开始摇三个骰子计算总值,11 <= 总值 <=18 为“大,3<= 总值 <= 10 为“小”。然后告诉玩家猜对或是猜错的结果。看起来就像是这样:

 

<<<<< GAME STARTS! >>>>>
Big or Small:Big
<<<<< ROLE THE DICE!>>>>>
The points are [2, 6, 3] You Lose!

       好,现在我们就可以开始来制作下游戏了!

       我们先来梳理一下这个小游戏的程序设计思路

       首先,需要让程序知道如何摇骰子,我们需要构建一个摇骰子的函数。这里面有两个关键点,一是需要摇3个骰子,每个骰子都生成1~6的随机数,你需要考虑一下,用什么方式可以实现依次摇3个骰子,这是我们在这一章里面学到的知识点;二是创建一个列表,把摇骰子的结果存储在列表里面,并且每局游戏都更换结果,也就是说每局游戏开始前列表都被清空一次,这里也需要好好考虑下用什么方式实现。
       其次,我们摇出来的结果是3个骰子分别的点数,需要把点数转换为“大”或者“小”,其中“大”的点数范围是11<=总值<=18,“小”的点数范围是3<=总值 <=10。
       最后,让用户猜大小,如果猜对了就告诉用户赢的结果,如果猜错了就告诉用户输的结果。
       只要你掌握了本章的内容,这个小游戏的编程过程并不困难。如果你决心掌握编程这种魔法,实际上最需要的是,发展出设计与分解事物的思路。所谓逻辑关系就是不同事物之间的关联性,它们以何种方式连接、作用,又在什么边界条件下能实现转换或互斥。与其说是编程有趣,倒不如说是编程引发的这种思考给开发者带来了乐趣。

       有思路了吗?先试试自己动手做吧。

       首先,我们先来构造可以摇骰子的函数roll_dice。这个函数其实并不需要输入任何参数,调用后会返回储存着摇出来三个点数结果的列表。

 import randomdef roll_dice(numbers=3, points=None): print('<<<<< ROLL THE DICE! >>>>>') if points is None: points = [] while numbers > 0: point = random.randrange(1,7) points.append(point) numbers = numbers - 1 return points

       第2行:创建函数,设定两个默认参数作为可选,numbers-一骰子数量, points-三个筛子的点数的列表;
       第3行:告知用户开始摇骰子;
       第4~5行:如果参数中并未指定 points,那么为points创建空的列表;
       第6~9行:摇三次骰子,每摇一次numbers 就减1,直至小于等于0时,循环停止;
       第10行:返回结果的列表。
接着,我们再用一个函数来将点数转化成大小,并使用if 语句来定义什么是“大”,什么是“小”:

 def roll_result(total): isBig = 11 <= total <=18 isSmall = 3 <= total <=10 if isBig: return 'Big' elif isSmall: return 'Small'

       第1行:创建函数,其中必要的参数是骰子的总点数;第2~3行:设定“大”与“小”的判断标准;
       第4~7行:在不同的条件下返回不同的结果。

       最后,创建一个开始游戏的函数,让用户输入猜大小,并且定义什么是猜对,什么是猜错,并输出对应的输赢维结果。 第1行:创建函数,并不需要什么特殊参数;第2行:告知用户游戏开始;

 def start_game():print('<<<<< GAME STARTS! >>>>>')choices = ['Big','Small']your_choice = input('Big or Small :')if your_choice in choices:points = roll_dice()total = sum(points)youWin = your_choice == roll_result(total)if youWin:print('The points are',points,'You win !') else:print('The points are',points,'You lose !') else:print('Invalid Words')start_game()start_game()

      第3行:规定什么是正确的输入;
      第4行:将用户输入的字符串储存在your_choice中;
      第5、13~15行:如果符合输入规范则往下进行,不符合则告知用户并重新开始;

      第6行:调用 roll_dice函数,将返回的列表命名为 points;

      第7行:点数求和;
      第8行:设定胜利的条件--你所选的结果和计算机生成的结果是一致的:

      第9~12行:成立则告知胜利,反之,告知失败;

      第16行:调用函数,使程序运行。

      完成这个小游戏之后,你就可以试着和自己设计的程序玩猜大小了。同时你也掌握了循环和条件判断混用的方法,初步具备了设计更复杂的程序的能力了。

🎀看都看到这里啦留个三连再走吧!!你们的支持就是我的动力!!!🎀🎀🎀

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试真题 Python 实现【机房布局】【2023Q1 200分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、解题思路六、Python算法源码七、效果展示1、输入2、输出 一、题目描述 小明正在规划一个大型数据中心机房&#xff0c;为了使得机柜上的机器都能正常满负荷工作&#xff0c;需要确保在每个机柜边上至少要有一个电箱…

市场营销书籍推荐,这些书帮你学好营销

市场营销一直是商业运作中的重要环节&#xff0c;因此市场营销的知识一直备受关注。在这篇文章中&#xff0c;小编将向你推荐三本经典市场营销书籍&#xff0c;通过阅读这些书籍能让你更深入了解市场营销的基本概念和策略。 1、《经理人参阅&#xff1a;市场营销》 《经理人参…

技术管理第三板斧招聘与解聘-找到人

1.人才要自己去找、去抢 从团队的角度出发&#xff0c;Leader“主动出击、寻找合适人选”的观念符合逻辑&#xff0c;你既然是团队的一号位&#xff0c;自然最应该了解团队现状&#xff0c;以及团队需要的人选。与此同时&#xff0c;找到合适的人对你的影响最大而非 HR&#x…

【MySQL数据库】MHA高可用配置及故障切换

目录 一、MHA简介1.1什么是MHA1.2MHA的组成1.3MHA的特点 二、搭建MHA2.1故障模拟2.2故障修复 一、MHA简介 1.1什么是MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。M…

【HTTPS】采用的加密策略, 什么是中间人攻击? 什么是证书?

文章目录 前言一、认识 HTTPS 协议1, 对称加密2, 非对称加密 二、HTTPS 加密策略1, 只采用对称加密 : 不安全2, 引入非对称加密3, 中间人攻击之偷梁换柱4, 引入证书4.1 什么是证书4.2, 证书如何能解决"中间人攻击" 总结 前言 各位读者好, 我是小陈, 这是我的个人主页…

文件打包解包的方法

文件打包 前言 在很多情况下&#xff0c;软件需要隐藏一些图片&#xff0c;防止用户对其更改&#xff0c;替换。例如腾讯QQ里面的资源图片&#xff0c;哪怕你用Everything去搜索也搜索不到&#xff0c;那是因为腾讯QQ对这些资源图片进行了打包&#xff0c;当软件运行的时候解…

动态地图开发的未来应用场景有哪些?

动态地图开发应用已经成为现代数字世界中不可或缺的一部分。这种技术的灵活性为公司和组织提供了一种简单却强大的方式&#xff0c;以在现实世界地图上显示各种信息。无论是用于自动导航系统、气象预报、实时交通状况或利用商业洞察力获取市场数据&#xff0c;动态地图开发应用…

SpringBoot整合网易邮箱

SpringBoot整合邮箱 1&#xff0c;开启POP3/SMTP/IMAP服务 注意&#xff1a;每个邮箱的密码唯一&#xff0c;不要随意分享给他人 最后就是这个样子了 2&#xff0c;整合测试 2.1&#xff0c;pom.xml <?xml version"1.0" encoding"UTF-8"?> <…

【教程】解决php微擎中的goto加密解密,一键解密工具

今天&#xff0c;我将向大家揭秘一款神奇的工具——goto解密工具&#xff0c;轻松解密这个看似棘手的问题。 无数开发者都曾因为php中的goto功能而头疼不已。goto解密工具其中之一就是解密goto代码。通过精妙的算法和强大的解析能力&#xff0c;它能够解密被goto加密的代码段&…

Tune-A-Video:用于文本到视频生成的图像扩散模型的One-shot Tuning

Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation Project&#xff1a;https://tuneavideo.github.io 原文链接&#xff1a;Tnue-A-Video:用于文本到视频生成的图像扩散模型的One-shot Tuning &#xff08;by 小样本视觉与智能前沿&…

Redis基础认识

日升时奋斗&#xff0c;日落时自省 目录 1、Redis安装及配置 2、缓存简介 2.1、缓存优点 2.2、缓存分类 2.3、常见缓存使用 2.3.1、Spring Cache 2.3.2、Redis 3、Redis数据类型和使用 3.1、字符串类型 3.2、哈希类型 3.3、列表类型 3.4、集合类型 3.5、有序集合类…

基于 unity 配置 adb

1.打开环境变量配置path的环境 2 找到自己的unity安装目录,找到对应路径 配置到 path 属性中 C:\~\Editor\2021.3.0f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools 3 应用保存即可