Python游戏编程 – 猜数字游戏

Python游戏编程 – 猜数字游戏

Python Game Programming – Guessing Number Game

By Jackson@ML

对Python有一定了解,并且熟知变量、数据类型、循环与分支、函数功能后,我们可以尝试来编写简单的游戏代码。

本文简要介绍如何编写猜数字游戏的Python代码,以及运行的效果。希望对读者有所帮助。

1. 猜数字游戏原理

用户需要输入一个数字,用来猜测该数字是否为指定的或者被猜中的数字:

  • 如果猜中,则输出“成功“字样,即用户获胜;
  • 如果没猜中,程序回复用户”过高“或者”过低“(随比较结果而定)。

程序每次选择的数字应该不相同,否则游戏就会显得无趣,并耽误时间。此外,这个数字不应该轻易被猜中。

因此,产生一个随机数至关重要,它可以满足这种猜数字游戏的好奇心。

2. 游戏程序

上述的猜数字流程,看起来没有什么大的问题。现在,让我们开始写代码吧。

我们假定在1至50的范围猜测数字。由于是随机数,因此,需要引入Python的库random:

import random

接下来,写出按照预期要求的代码如下:

import random as rd 
n = rd.randint(1, 50)
while True:guess = int(input("Enter guess number:"))if guess == n:print("Success! You win.")break elif guess < n:print("Too low! Try again.\n", end=" ")else:print("Too high! Try again.\n", end=" ")

执行结果如下图所示:

在这里插入图片描述

3. 改进版本的游戏程序

该游戏的确很好玩!

我们每次猜的时候,可以调整随机数范围,也可以做其它改进。尤其是对游戏本身的改进。

  • 首先,应该在每次游戏结束前,有互动的机会,询问用户是否再玩一局;
  • 其次,如果用户在任何回合中感觉无聊,或者着急退出,他们应该能够提早退出。有了这样的机制,游戏编程更加成熟。

经过思考,引入函数对功能进行打包,对代码改进如下:

import random as rd 
def play_game():n = rd.randint(1, 50)while True:guess = int(input("Enter guess number(0 to Exit):"))if guess == 0:print("Quitting the game...")break elif guess == n:print("Success! You win.")elif guess < n:print("Too low! Try again.\n", end=" ")else:print("Too high! Try again.\n", end=" ")
while True:play_game()idea1 = input("You want to play again? (y/n): ")if not idea1 or idea1[0] in 'Nn':break

执行结果如下图所示:
在这里插入图片描述
我们看到有耐心玩游戏的话,猜数字猜了很多轮(如上图);那么,如果没耐心或者着急退出,则有以下结果:
在这里插入图片描述
现在,猜数字游戏看起来有点健壮了。

我们继续努力吧,寻找Python游戏世界的乐趣。😊

相关阅读:

  1. Python编程技巧 - 使用正则表达式
  2. Python编程技巧 - 单字符函数
  3. Python编程技巧 - 使用组合运算符
  4. Python编程技巧 - 异常处理
  5. Python编程技巧 - 迭代器(Iterator)
  6. Python编程技巧 - Lambda函数
  7. Python编程技巧 - 使用字典
  8. Python编程技巧 - 使用字符串(Strings)
  9. Python编程技巧 - 对象和类
  10. Python编程技巧 - 使用列表(Lists)
  11. Python编程技巧 - 转换二进制、八进制和十六进制的函数
  12. Python编程技巧 - 函数入门
  13. 安装Visual Studio Code来开发Python应用程序
  14. 安装2023最新版PyCharm来开发Python应用程序
  15. 2023最新版Python 3.12.0安装使用指南
  16. Python猜数字游戏代码报错的解决办法

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

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

相关文章

研发管理-代码管理篇

前言&#xff1a; 工作了这些年&#xff0c;工作了三家公司&#xff0c;也用过主流的代码管理平台&#xff0c;比如SVN&#xff0c;git系列&#xff08;gitlib,gitee&#xff09;,各有优点&#xff0c;我个人比较喜欢SVN&#xff0c;多人协作的代码管理难免会有代码冲突&#…

MaBatis使用`ResultMap`标签手动映射详解使用

文章目录 MaBatis使用ResultMap标签手动映射详解使用1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系&#xff0c;二者不同时无法自动ORM&#xff0c;如下&#xff1a;2、在SQL中使用 as 为查询字段添加列别名&#xff0c;以匹配属性名&#xff1a;但是如果我…

TCAX特效字幕保姆入门教程+效果演示+软件源码自取

目录 介绍 下载链接 初步使用 软件使用 tcc文件介绍 tcc文件版本 模式设置 ​编辑 k值提供方式举例 特效脚本设置 主要设置 ass全局风格设置 额外设置 常见问题 编码使用 使用其他tcax博主的进行编码测试 介绍 TCAX是一款专门用于制作特效字幕的软件。通过TCAX…

【中小型企业网络实战案例 一】规划、需求和基本配置

热门IT技术【视频教程】https://xmws-it.blog.csdn.net/article/details/134398330?spm1001.2014.3001.5502 案例拓扑图 案例需求 在中小园区中&#xff0c;S5735通常部署在网络的接入层&#xff0c;S8700通常部署在网络的核心&#xff0c;出口路由器一般选用AR系列路由器。 …

使用Windows批处理命令行和ImageMagick批量将文件夹中的图片转换为PDF文档的方法

目录 应用场景 实现思路 实现过程 1.下载安装imageMagick 2.遍历源文件夹 3.转换图片为pdf文档 4.最终执行的命令 5.结果验证 6.将以上命令改写为windows批处理文件 应用场景 图像是一种常见的数据。图片几乎是一个信息系统中必不可少的组成部分。为了方便阅读&…

Redis一些常用的技术

文章目录 第1关&#xff1a;Redis 事务与锁机制第2关&#xff1a;流水线第3关&#xff1a;发布订阅第4关&#xff1a;超时命令第5关&#xff1a;使用Lua语言 第1关&#xff1a;Redis 事务与锁机制 编程要求 根据提示&#xff0c;在右侧编辑器Begin-End补充代码&#xff0c;根据…

Mac managing Multiple Python Versions With pyenv 【 mac pyenv 管理多个python 版本 】

文章目录 1. 简介2. 安装2.1 brew 安装 pyenv2.2 脚本安装 3. pyenv 安装 Python4. 卸载 python5. 管理 python 1. 简介 Pyenv 是一个用于管理和切换多个 Python 版本的工具。它允许开发人员在同一台计算机上同时安装和使用多个不同的 Python 版本&#xff0c;而无需对系统进行…

基于EasyDarwin、ffmpeg实现rtsp推流

目录 1 安装EasyDarwin 2 编译安装ffmpeg 3 启动EasyDarwin 4 ffmepg推流 5 百度网盘备份 某项目中测试时需要用到推流&#xff0c;于是用EasyDarwin、ffmpeg实现了RTSP推流&#xff0c;简单记录下过程&#xff0c; 1 安装EasyDarwin 这个可以去官网下载&#xff1a;Eas…

【jvm从入门到实战】(九) 垃圾回收(2)-垃圾回收器

垃圾回收器是垃圾回收算法的具体实现。 由于垃圾回收器分为年轻代和老年代&#xff0c;除了G1之外其他垃圾回收器必须成对组合进行使用 垃圾回收器的组合使用关系图如下。 常用的组合如下: Serial&#xff08;新生代&#xff09; Serial Old&#xff08;老年代&#xff09; Pa…

Jenkins 构建环境指南

目录 Delete workspace before build starts&#xff08;常用&#xff09; Use secret text(s) or file(s) &#xff08;常用&#xff09; Add timestamps to the Console Output &#xff08;常用&#xff09; Inspect build log for published build scans Terminate a …

Python与Flink的完美融合:合流基本操作解析

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Apache Flink 是一个流式处理框架&#xff0c;支持复杂事件处理和大规模数据分析。在 Flink 中&#xff0c;合流&#xff08;Join&#xff09;是一种常见的操作&#xff0c;用于将两个或多个流中的数据按照指定条…

【jsonview去除排序】如何让jsonview不自动排序(已解决)

✈️涉及知识 如何取消JSON默认数值排序&#xff0c;JSON.parse()函数排序关闭&#xff0c;取消JSON.parse排序&#xff0c;Json格式化校验&#xff0c;jsonview排序问题解决方法。 &#x1f947;专栏&#x1f947;&#xff1a;前端技术&#xff0c;json格式化 &#x1f482;关…

【模式识别】解锁降维奥秘:深度剖析PCA人脸识别技术

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《模式之谜 | 数据奇迹解码》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 目录 &#x1f30c;1 初识模式识…

【力扣100】543.二叉树的直径

添加链接描述 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def __init__(self):self.max 0def diamete…

【C语言】自定义类型——枚举、联合体

引言 对枚举、联合体进行介绍&#xff0c;包括枚举的声明、枚举的优点&#xff0c;联合体的声明、联合体的大小。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;一起学习C语言&#x1f388; 目录 引言 枚举 枚举…

【JVM从入门到实战】(八)垃圾回收(1)

内存泄漏&#xff1a;指的是不再使用的对象在系统中未被回收&#xff0c;内存泄漏的积累可能会导致内存溢出 什么是垃圾回收 Java中为了简化对象的释放&#xff0c;引入了自动的垃圾回收&#xff08;Garbage Collection简称GC&#xff09;机制。通过垃 圾回收器来对不再使用的…

速度与稳定性的完美结合:深入横测ToDesk、TeamViewer和AnyDesk

文章目录 前言什么是远程办公&#xff1f;远程办公的优势 远程办公软件横测对象远程软件的注册&安装ToDeskTeamViewerAnyDesk 各场景下的实操体验1.办公文件传输及丢包率2.玩游戏操作延迟、稳定3.追剧画质流畅度、稳定4.临时技术支持SOS模式 收费情况与设备连接数总结 前言…

VueCron使用方法

1&#xff09;什么是vueCron Vue Cron 是基于 Vue.js 的定时任务管理组件&#xff0c;它提供了一种简单易用的方式来设定和管理定时任务。Vue Cron 提供了一个类似于 Linux crontab 的界面&#xff0c;用户可以通过它来创建、编辑和删除定时任务。 2&#xff09;安装依赖及应…

HuggingFace下载模型

目录 方式一&#xff1a;网页下载 方式二&#xff1a;Git下载 方式一&#xff1a;网页下载 方式二&#xff1a;Git下载 有些模型的使用方法页面会写git clone的地址&#xff0c;有些没写&#xff0c;直接复制网页地址即可 网页地址&#xff1a; ​https://huggingface.co/…

下午好~ 我的论文【yolov5】(第四期)

文章目录 简介模型Mosaic数据增强自适应锚框计算自适应图片缩放Focus结构CSP结构 NeckCIOU_Lossnms非极大值抑制代码最后 简介 YOLO V4没过多久YOLO V5就出来了。YOLO V5的模型架构是与V4非常相近的。 模型 Yolov5官方代码中&#xff0c;给出的目标检测网络中一共有4个版本&…