入门实战丨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.hqwc.cn/news/336449.html

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

相关文章

私域新手必看:这可能是你最快速的入门指南!

一、认知层&#xff1a;为什么必须做私域&#xff1f; 了解这个问题&#xff0c;必须得观察一下中国现状。根据中国互联网络信息中心&#xff08;CNNIC&#xff09;发布第48次《中国互联网络发展状况统计报告》显示&#xff0c;截至 2021 年 6 月&#xff1a; 而典型电商平台的…

解决方案|镭速助力汽车行业实现数据高速传输数字化进程

在新一代信息技术驱动的数字经济时代&#xff0c;数据已然成为新型生产要素&#xff0c;是国家基础性资源和战略性资源&#xff0c;在汽车市场全球化背景下&#xff0c;产品、数据跨境、区域协同将成为车企未来常态。 1、数字时代&#xff0c;车企数据管理面临新课题 汽车产业…

muduo网络库剖析——时间Timestamp类

muduo网络库剖析——时间Timestamp类 前情从muduo到my_muduo 概要框架与细节成员函数使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库&#xff0c;考虑的肯定是众多情况是否可以高效满足&#xff1b;而作为学习者&#xff0c;我们需要抽取其中的…

Transformer - 注意力机制

文章目录 1. Self-attention2. Multi-head Self-attention3. Positional Encoding4. Transformer4.1 Encoder4.2 Decoder4.2.1 Autoregressive4.2.2 Non-autoregressive 4.3 Encoder-Decoder4.4 Training 1. Self-attention 自注意力机制。 解决的问题&#xff1a;到目前为止…

面试宝典之spring框架常见面试题

F1、类的反射机制有啥用&#xff1f; &#xff08;1&#xff09;增加程序的灵活性&#xff0c;可扩展性&#xff0c;动态创建对象。 &#xff08;2&#xff09;框架必备&#xff0c;任何框架的封装都要用反射。&#xff08;框架的灵魂&#xff09; F2、获取Class对象的三种方…

Linux第22步_安装CH340驱动和串口终端软件MobaXterm

开发板输出信息通常是采用串口&#xff0c;而计算机通常是USB接口&#xff0c;为了让他们之间能够交换数据&#xff0c;我们通常采用USB转串口的转换器来实现。目前市场上的串口转换器大多是采用CH340芯片来实现的&#xff0c;因此我们需要在计算中安装一个CH340驱动程序&#…

Spring MVC中JSON数据处理方式!!!

添加json依赖 <!--spring-json依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency> 注解 RequestBody&#xff1a;作…

【APP抓包】IOS应用抓包防护绕过实战教程

文章目录 1. 写在前面2. 测试机越狱2.1. 爱思助手2.2. checkra1n 3. 代理抓包3.1. 安装CA证书 4. 客户端证书绑定绕过4.1. SSLKillSwitch4.2. Objection 5. 双向证书绑定绕过5.1. 绕过服务端 6. 越狱检测绕过6.1. Liberty Lite绕过检测6.2. Hestia绕过检测6.3. HideJB绕过检测6…

书生·浦语大模型实战2

轻松玩转书生浦语大模型趣味 Demo 大模型及 InternLM 模型简介 什么是大模型 大模型通常指的是机器学习或人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。这些模型利用大量数据进行训练&#xff0c;并且拥有数十亿甚至数千亿个参数。大模型的出现和发展得益…

Netdata安装

先上一张部署成功的效果 一、Netdata是什么&#xff1f; Netdata是一款Linux性能实时监测工具&#xff0c;web页面可视化展示系统及应用程序的实时运行状态&#xff0c;包括CPU、内存、硬盘I/O及网络等性能数据。 二、安装 方式一&#xff1a;直接安装 安装基本编译环境 […

git撤销提交到本地的commit

有些时候&#xff0c;当我们提交代码到本地后&#xff0c;突然发现因为某些原因需要撤销提交本地的代码。 就比如我&#xff0c;因为代码写错了分支&#xff0c;已经提交到本地了&#xff0c;而我需要取消&#xff0c;并且还要把代码搞得另外的分支上。 提交前&#xff1a; …

c++学习:STL库(框架)+字符串模板类string+vector容器+list链表

目录 stl库 常用组件包括 字符串库 字符串模板类string 头文件 最常用的字符串模板类 字符串类型 模板原型 模板的成员数据类型 模板成员函数 有些函数会有重载&#xff0c;可以去下面网址查看std::basic_string - cppreference.comhttps://zh.cppreference.com/w/cp…