入门实战丨Python小游戏经典案例

文章目录

  • 写在前面
  • 判断与循环
  • 小游戏
    • 猜数游戏
    • 龙的世界
  • 写在后面

写在前面

本期内容:两个个简单的Python小游戏入门案例。

实验需求:python

实验目标:掌握基本的判断与循环语句。

判断与循环

判断与循环是编程中非常重要的两个概念,它们可以帮助开发者控制程序的执行流程,实现不同的逻辑和功能。

判断语句(if语句)是一种在程序中根据条件判断来执行不同操作的结构。它的基本形式是:如果某个条件成立,就执行某段代码;否则执行另外一段代码。例如,如果一个数大于等于10,则输出“这个数大于等于10”,否则输出“这个数小于10”。判断语句可以根据实际情况来选择要执行的代码段,从而实现不同的操作。

循环语句(for循环、while循环)是一种重复执行某段代码的结构。它的基本形式是:在满足某个条件下,重复执行某段代码。例如,计算1到100的和,可以使用循环语句来重复累加数字。循环语句可以让程序多次执行同一段代码,从而实现重复性的操作。

判断和循环语句通常会结合使用,以实现更复杂的功能。例如,在一个学生成绩管理系统中,可以使用判断语句判断一个学生的成绩是否及格,然后使用循环语句来遍历多个学生的成绩。

在编程中,判断和循环语句的使用非常灵活。可以根据实际情况来选择不同的条件和循环方式。判断语句可以嵌套使用,从而实现更复杂的判断逻辑;循环语句可以使用不同的方式控制循环次数,例如使用计数变量、条件表达式等。

判断与循环是编程中非常基础和重要的概念,几乎在任何编程语言中都有对应的语法。掌握好判断和循环的用法,可以帮助开发者更好地控制程序的执行流程,实现各种复杂的逻辑和功能。因此,学习判断和循环是编程入门的必备知识,也是进阶和深入学习的基础。

小游戏

猜数游戏

完整程序

"""
作者:Want595
微信号:Want_595
公众号:Want595
"""
import randomgessesTaken = 0print('请输入你的姓名:')
myName = input()
number = random.randint(1, 20)
print('Hi!' + myName + ',我的年龄在1~20间噢~')
for guessesTaken in range(6):print('猜一猜吧:')guess = int(input())if guess < number:print("猜小啦")elif guess > number:print("猜大啦")else:break
if guess == number:guessesTaken = str(guessesTaken + 1)print("恭喜你猜对啦!")if guess != number:number = str(number)print("别猜啦,我其实" + number + "岁.")

程序分析

这段程序是一个猜年龄的小游戏。首先,程序会生成一个随机数作为目标年龄。然后,程序会询问玩家的姓名,并打印问候语。接下来,程序会循环6次,每次循环中,玩家可以输入一个猜测的年龄。程序会根据猜测和目标年龄的大小关系给出不同的回答,直到玩家猜对或者循环结束。最后,程序会根据猜测是否正确给出不同的提示信息。

在程序分析方面,可以从以下几个方面进行分析:

  1. 程序的目的是让玩家猜测一个随机生成的年龄。为了实现这个目的,程序使用了随机数生成器和循环机制。
  2. 程序通过调用random.randint(1, 20)函数生成一个1到20之间的随机数作为目标年龄。
  3. 程序使用input函数获取玩家的姓名,并将其保存在变量myName中。
  4. 程序使用for循环进行猜测的次数限制,循环6次。
  5. 在每次循环中,程序使用input函数获取玩家的猜测,并将其转换为整数类型保存在变量guess中。
  6. 程序使用if-elif-else语句根据玩家的猜测和目标年龄的大小关系给出不同的回答。
  7. 如果玩家猜对了,程序会使用break语句退出循环,并给出恭喜的提示信息。
  8. 如果玩家没有猜对,程序会在循环结束后给出正确的年龄,并提示玩家不要再猜。

总的来说,这段程序是一个简单的猜年龄游戏,通过使用随机数和循环,引导玩家猜测目标年龄,并给予相应的回答。程序的逻辑比较清晰简单,不过可以考虑添加一些异常处理,如对输入的合法性进行验证等。另外,也可以在猜对后显示玩家的猜测次数,以增加游戏的趣味性。

运行结果

1

龙的世界

程序设计

import random
import timedef displayIntro():print('''欢迎来到龙的世界''')print()def chooseCave():cave = ''while cave != '1' and cave != '2':print('你选择进入哪个洞穴? ? (1 or 2)')cave = input()return cavedef checkCave(choseCave):print('你正在慢慢的靠近这个山洞...')time.sleep(2)print('突然一条巨龙跳了出来,并张开了大大的嘴巴 ...')print()time.sleep(2)friendlyCave = random.randint(1, 2)if choseCave == str(friendlyCave):print('充满微笑的给你他的宝藏!')else:print('一口把你吃掉!')playAgain = 'yes'
while playAgain == 'yes' or playAgain == 'y':displayIntro()caveNumber = chooseCave()checkCave(caveNumber)print('你还想再玩一次吗? (yes or no)')playAgain = input()

程序分析

这个程序是一个文字冒险游戏,玩家必须选择进入两个洞穴中的一个,并根据随机生成的巨龙的友好性来决定是否成功获得宝藏。

程序首先导入了random和time模块,用于生成随机数和控制程序的运行时间。

然后定义了三个函数,分别是displayIntro()用于展示游戏的介绍信息,chooseCave()用于让玩家选择洞穴,checkCave(cave)用于根据玩家的选择检查洞穴中的情况。

在主程序中,使用一个while循环来控制游戏的运行。首先调用displayIntro()展示游戏介绍信息,然后调用chooseCave()让玩家选择洞穴。接下来调用checkCave()检查洞穴中的情况,并根据结果输出相应的信息。

最后,根据玩家的输入决定是否继续玩游戏。

整个程序的逻辑比较简单,玩家只需选择洞穴,然后根据随机出现的巨龙的友好程度决定游戏的结果。程序结构清晰,易于理解和修改。

运行结果

2

写在后面

我是一只有趣的兔子,感谢你的喜欢!

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

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

相关文章

Java零基础教学文档servlet(3)

【AJax】 1.传统开发模式的不足 传统开发模式基于浏览器数据传输功能,页面填写数据/展示数据。浏览器通过访问一个URL地址&#xff0c;将页面的数据提交给服务器。服务器将需要展示的数据返回给浏览器&#xff0c;浏览器再进行数据解析&#xff0c;将数据呈现在用户面前。这种…

【复习】人工智能 第7章 专家系统与机器学习

专家系统就是让机器人当某个领域的专家&#xff0c;但这章专家系统不咋考&#xff0c;主要靠书上没有的机器学习。 一、专家系统的基本组成 二、专家系统与传统程序的比较 &#xff08;1&#xff09;编程思想&#xff1a; 传统程序 数据结构 算法 专家系统 知识 推理 &…

maya , motionbuilder 骨骼动画相关操作与脚本

文章目录 Maya导入时增加namespacemaya 解除/增加父子关系maya 修改骨骼局部坐标系显示骨骼局部坐标系删除不需要的骨骼重命名骨骼重定向基础细节 Motionbuildermb同时打开两个动画文件 Maya 导入时增加namespace import pymel.core as pm pm.namespace(add"src") …

C++面试问题合集之哈希

1.什么是哈希 哈希&#xff08;Hash&#xff09;是一种将数据映射到固定大小的值&#xff08;哈希值&#xff09;的过程。在计算机科学中&#xff0c;哈希函数将任意长度的数据&#xff08;输入&#xff09;转换为固定长度的哈希值&#xff08;输出&#xff09;。哈希函数通过对…

SpringBoot项目打包

1.在pom.xml的build>plugins中加入如下配置 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration>…

C++ STL--->stack和queue

文章目录 stackstack实现参考源码 queuequeue实现参考源码 stack stack文档 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行 元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器…

什么是Nginx

概念 Nginx (engine x)是一个高性能的HTTP和反向代理web服务器同时也提供IMAP/POP3/SMTP服务 主要功能反向代理 通过配置文件可以实现集群和负载均衡 静态资源虚拟化 图解 常见服务器 apache 超过百万并发后性能下降 nginx 操作简单支持并发量大 什么是代理 代理简单来说&a…

html+css 浮动、清除浮动、什么是BFC?、如何开启BFC

浮动 介绍&#xff1a; 其实早期的浮动是用来文字环绕图片效果,但是后来发现浮动还可以设置页面布局问题 块元素在文档流中默认垂直排列&#xff0c;如果希望块元素在页面中水平排列&#xff0c;可以使块元素脱离文档流 特点&#xff1a; 哪个元素设置浮动&#xff0c;哪个…

VUE3,自定义控制keep-alive缓存

安装插件 npm install vite-plugin-vue-setup-extend --save 在vite.config.ts中 import VueSetupExtend from vite-plugin-vue-setup-extend ..... plugins&#xff1a;[ vue(), VueSetupExtend(), ..... ] useKeepalive.ts import { ref } from "vue" export const…

win10系统postgresql重装软件后原数据如何迁移

1、备份postgresql安装目录下的data文件夹 2、重新安装postgresql同一版本的软件 3、停止postgresql-x64-12服务 4、替换data文件夹 删除postgresql安装后新的的data文件夹 删除后将第一步备份的data文件夹粘贴过来&#xff0c;还是同一位置 5、启动postgresql-x64-12服务 …

树莓派调用usb摄像头(三)

查看是否检索到摄像头 因为我的摄像头是usb 的所以使用一下命令查看摄像头 安装fswebcam sudo apt-get install fswebcam输入以下命令&#xff0c;开启摄像头 fswebcam --no-banner -r 640x480 image3.jpg sudo apt-get install cmake libjpeg8-dev 提示&#xff1a;Packag…

配置dns主从服务器,能够实现正常的正反向解析

一.DNS域名服务器原理及作用等介绍 1.DNS简介&#xff1a; DNS是互联网上的一项服务&#xff0c;担任域名和IP地址相互映射的一个分布式数据库&#xff0c;相较于IP&#xff0c;域名更便于记忆能够使人更方便的访问互联网。但是计算机只能基于IP来识别对方&#xff0c;而且要上…

vue3+ts+vite配置项目引入@surely-vue/table less报错

在项目当中报错Inline JavaScript is not enabled. Is it set in your options? 修改配置如下&#xff1a; return {css: {preprocessorOptions: {less: {javascriptEnabled: true //开启less编译&#xff0c;注意&#xff1a;这个很重要}}},}

怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准

2023年12月27日&#xff0c;上海怿星电子科技有限公司测试实验室&#xff08;下称&#xff1a;EPT LABS&#xff09;通过CNAS实验室认可批准&#xff0c;并于2024年1月5日正式取得CNAS实验室认可证书&#xff08;注册号CNAS L19826&#xff09;&#xff0c;标志着怿星科技的实验…

mysql group_concat函数使用

CREATE TABLE aa (id int(11) DEFAULT NULL,name varchar(50) DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb41、基本查询 SELECT * FROM aa;2、以id分组&#xff0c;把name字段的值打印在一行&#xff0c;逗号分隔(默认) select id,group_concat(name) from aa group …

mac pro “RESP.app”意外退出 redis desktop manager

文章目录 redis desktop manager下载地址提示程序含有恶意代码“RESP.app”意外退出解决办法&#xff1a;下载python3.10.并安装重新打开RESP如果还是不行&#xff0c;那么需要替换错误路径&#xff08;我的没用&#xff09;外传 最近在研究redis的消息&#xff0c;看到了strea…

iOS UI掉帧和卡顿优化解决方案记录

UI卡顿原理 在 VSync 信号到来后&#xff0c;系统图形服务会通过 CADisplayLink 等机制通知 App&#xff0c;App 主线程开始在 CPU 中计算显示内容&#xff0c;比如视图的创建、布局计算、图片解码、文本绘制等。随后 CPU 会将计算好的内容提交到 GPU 去&#xff0c;由 GPU 进行…

vba设置excel单元格背景色

vba设置excel单元格背景色位蓝色 Sheet1.Cells(hang, 2).Interior.Color RGB(0, 0, 255) 参考链接 【VBA】给单元格设置背景色_vba 将一行底色置绿色-CSDN博客https://blog.csdn.net/s_h_m114_2/article/details/105787093 参考2 知乎 VBA--单元格的背景色设置 特此…

一文读懂【北交所】开通条件及交易规则!

近期市场持续萎靡不振&#xff0c;北交所却在大涨调整后&#xff0c;还能继续拉升&#xff0c;前些天还打起了“麻将”&#xff0c;“东南西北中”花式齐飞。这带给投资者朋友们极大的信心&#xff01;那么有些朋友还没有跟上吃肉&#xff0c;还不了解什么是北交所&#xff1f;…