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

news2024/12/27 12:54:16

文章目录

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

写在前面

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

实验需求:python

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

判断与循环

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

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

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

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

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

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

小游戏

猜数游戏

完整程序

"""
作者:Want595
微信号:Want_595
公众号:Want595
"""
import random

gessesTaken = 0

print('请输入你的姓名:')
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 time


def displayIntro():
    print('''欢迎来到龙的世界''')
    print()


def chooseCave():
    cave = ''
    while cave != '1' and cave != '2':
        print('你选择进入哪个洞穴? ? (1 or 2)')
        cave = input()

    return cave


def 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.coloradmin.cn/o/1374018.html

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

相关文章

DAC高速线缆:性能卓越的连接解决方案

DAC高速线缆是一种广泛应用于数据中心和云计算等领域的高性能连接解决方案。它通过直接连接设备之间的端口&#xff0c;实现了高速、低延迟的数据传输。本文将介绍DAC高速线缆的定义、组成、作用以及与光纤线的区别&#xff0c;同时提供详细的使用方法和相关问题的解答。 第一…

AlexNet(fashion-mnist)

前言 AlexNet相较于LeNet-5具有更深的网络结构&#xff0c;采用relu激活函数。 AlexNet 参数更多&#xff0c;计算量更大&#xff0c;计算速度更慢&#xff0c;精度更高。 netnn.Sequential(nn.Conv2d(1,96,kernel_size11,stride4,padding1),nn.ReLU(),nn.MaxPool2d(kernel…

启用Hyper-V的三种方法,总有一种适合你

想在Windows 10计算机上的虚拟机中安装并运行Linux或更早版本的Windows操作系统吗&#xff1f;你将很高兴知道&#xff0c;你不需要第三方虚拟化软件&#xff08;如VirtualBox&#xff09;来在Windows 10上安装和运行Linux和Windows。 Windows 10中的内置Hyper-V工具允许你创建…

怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?

在互联网时代&#xff0c;爬虫技术被广泛应用于数据采集和处理。然而&#xff0c;在使用爬虫技术的过程中&#xff0c;经常会遇到IP被封禁的问题&#xff0c;这给数据采集工作带来了很大的困扰。因此&#xff0c;使用爬虫IP代理成为了解决这个问题的有效方法。本文将介绍如何使…

vscode中如何解决 Comments are not permitted(JSON中不允许注释)

vs code中如何解决Comments are not permitted&#xff08;JSON中不允许注释&#xff09;&#xff1f; 简单几步&#xff0c;让你轻松解决。 1.使用vscode打开json文件后&#xff0c;一些注释显示如图所示&#xff0c;有红色波浪线&#xff0c;影响阅读 2. 悬浮在波浪线报错信…

Flink构造宽表实时入库案例介绍

1. 安装包准备 Flink 1.15.4 安装包 Flink cdc的mysql连接器 Flink sql的sdb连接器 MySQL驱动 SDB驱动 Flink jdbc的mysql连接器 2. 入库流程图 3. Flink安装部署 上传Flink压缩包到服务器&#xff0c;并解压 tar -zxvf flink-1.14.5-bin-scala_2.11.tgz -C /opt/ 复…

史上最全的Mysql优化大全,总结

直接上总结图: MySQL调优与实操 SQL调优 适用于数据量较大的情况下 explain 可以通过explain关键字来分析SQL执行计划,然后进行适当的分析调优。 慢查询日志 永久生效 避免不走索引 1、尽量避免在字段开头模糊查询 2、尽量避免使用in 和 not in 3. 尽量避免进行 null 值的判断…

Redis 内存淘汰策略有哪些?过期数据如何删除?

Redis 在面试中出现的概率非常大&#xff0c;毕竟后端项目如果用到分布式缓存的话&#xff0c;一般用的都是 Redis。目前&#xff0c;还没有出现一个能够取代 Redis 的分布式缓存解决方案。 这篇文章中&#xff0c;我会分享几道 Redis 内存管理相关的问题&#xff0c;都很常见…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-5稳定性stability-李雅普诺夫Lyapunov

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-5稳定性stability-李雅普诺夫Lyapunov Stability in the sense of Lyapunov Assympototic Stability

Starrocks监控方案

下载安装包 Download | Prometheus Download Grafana | Grafana Labs 部署prometheus 配置文件 global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: StarRocks_Cluster metrics_path: /metrics static_configs: - targets: [192.168.110…

RAG 详解

原文&#xff1a;GitHub - Tongji-KGLLM/RAG-Survey 目录 RAG调查 什么是RAG&#xff1f;RAG的范式 幼稚的 RAG高级 RAG模块化 RAG如何进行增强&#xff1f;RAG 还是微调&#xff1f;如何评估 RAG&#xff1f;前景 严峻的挑战多式联运扩展RAG的生态系统RAG论文清单 增强阶段 …

Leetcode 1049 最后一块石头的重量II

题意理解&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。 思路转化&#xff1a;我们可…

Unity报错:[SteamVR] Not Initialized (109)的解决方法

问题描述 使用HTC vive 头像进行SteamVR插件的示例场景进行测试&#xff0c;发现头显场景无法跳转到运行场景&#xff08;Unity 项目可以运行&#xff0c;仅出现警告&#xff09;。 具体如下&#xff1a; [SteamVR] Not Initialized (109) [SteamVR] Initialization failed…

数字化转型的必备工具——易点易动固定资产管理系统

在互联网和新技术不断发展的今天,数字化转型已经成为各行各业都需要进行的重要布局。随着互联网思维的持续渗透,固定资产管理也需要进行变革与优化,离开线下转入线上。易点易动作为一款专业的固定资产管理软件,旨在为企业提供全方位便捷的数字化资产管理服务,帮助企业实现数字化…

学生用台灯哪个品牌比较好?口碑最好的护眼台灯推荐

市场上护眼台灯的价格从几百到几千元都有&#xff0c;如果是经济允许当然是越贵可能会越好啊&#xff0c;更多的人还是需要性价比高的护眼台灯的&#xff0c;这也是我写这篇文章的初心啦&#xff0c;也为了给大家避坑&#xff0c;作为一个测评博主&#xff0c;综合我个人购买的…

RT-DETR 更换主干网络之 ShuffleNetv2 | 《ShuffleNet v2:高效卷积神经网络架构设计的实用指南》

目前,神经网络架构设计多以计算复杂度的间接度量——FLOPs为指导。然而,直接的度量,如速度,也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接度量,而不仅仅是考虑失败。在一系列控制实验的基础上,本文得出了一些有效设计网络的实用指…

1 Cesium介绍

Cesium ​ Cesium 是一款面向三维地球和地图的&#xff0c;世界级的JavaScript开源产品。它提供了基于JavaScript语言的开发包&#xff0c;方便用户快速搭建一款零插件的虚拟地球Web应用&#xff0c;并在性能&#xff0c;精度&#xff0c;渲染质量以及多平台&#xff0c;易用性…

【计算机组成-指令系统体系结构】

课程链接&#xff1a;北京大学陆俊林老师的计算机组成原理课 1. 设计自己的计算机 一个简单的计算机指令系统 运算类指令&#xff1a;ADD R&#xff0c;M&#xff1b;功能&#xff1a;将R的内容和M中的内容相加后存入R传送类指令&#xff1a;LOAD R&#xff0c;M&#xff1b;…

数控开料机对比木工雕刻机的优势

数控开料机和木工雕刻机都属于木工机械加工设备&#xff0c;都可以用来开料和雕刻&#xff0c;但在市场价格、床体结构、技术要求等方面二者存在不小的差异&#xff0c;那么全自动数控开料机对比普通木工雕刻机有什么优势呢。 首先我们都知道&#xff0c;木工雕刻机主要应用于…

c语言进阶指南(17)——动态内存管理

欢迎来到博主的专栏——c语言进阶指南 博主id已更新&#xff1a; 文章目录 动态内存分配malloc动态内存的释放free其他的动态内存管理函数callocrealloc使用realloc函数调整动态内存空间使用realloc函数分配动态内存空间 动态内存分配 动态内存分配是内存分配的一种方法&#…