python实现数字炸弹游戏程序


Posted in Python onJuly 17, 2020

相信许多小伙伴都玩过数字炸弹游戏,就是指在一定数字范围(一般是整数,不包含边界)里,一个玩家选中一个数字当作炸弹,其余玩家在这个范围猜数字,每次只要没猜中炸弹数字,则根据玩家猜的数字缩小范围,直至其中一个玩家猜中炸弹数字,游戏结束。

在这里,我们可以尝试用Python编程的思想来拆解游戏过程(纯属无聊),核心主要为以下两个问题:

(1)数字炸弹的产生

(2)如何缩小范围

第一个问题很简单,可以使用random模块随机生成,需要注意的是数字炸弹不包含边界,randint函数可以生成指定范围的整数,但包含边界,所以需要做一下处理。本人是采用循环的方法,将生成的不符合要求的数字炸弹过滤掉;第二个问题是更为核心的问题,不断缩小范围,我们容易想到用while循环,最后猜中数字break跳出循环,游戏结束。

import random
 
def user_num():
 num = int(input('请输入你的数字:\n'))
 return num
def max_num():
 max_num = int(input('请输入最高数字:\n'))
 return max_num
def min_num():
 min_num = int(input('请输入起始数字:\n'))
 return min_num
 
min_num,max_num = min_num(),max_num()
 
while True:
 res = random.randint(min_num,max_num)#res可能会包括两端数字,需剔除
 if res!=min_num and res!=max_num:
 break
f = [min_num,max_num]
#核心代码
def comp(a,b):
 if a>b:
 f[1] = a
 else:
 f[0] = a
 print('游戏继续,范围{}到{},请再次输入'.format(f[0],f[1]))
 
flag = 0
while True:
 num = user_num()
 if num not in range(f[0],f[1]):
 print('不在范围内,请重新输入')
 continue
 elif num!=res:
 comp(num,res)
 elif num==res:
 print("你猜中啦,游戏结束!")
 break
 flag += 1
print("你一共猜了%d次"%flag)

核心代码那里我定义了一个比较函数,用来更替范围的两端,这样就可实现缩小猜数范围。代码还可以继续完善,不过本人还是菜鸟,光想这个问题二就想了不少时间。

python实现数字炸弹游戏程序

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
django之常用命令详解
Jun 30 Python
python如何在终端里面显示一张图片
Aug 17 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
python 中字典嵌套列表的方法
Jul 03 Python
Python如何发布程序的详细教程
Oct 09 Python
python 提取key 为中文的json 串方法
Dec 31 Python
python面向对象法实现图书管理系统
Apr 19 Python
Python之修改图片像素值的方法
Jul 03 Python
python 搜索大文件的实例代码
Jul 08 Python
Python 如何查找特定类型文件
Aug 17 Python
Matlab中plot基本用法的具体使用
Jul 17 #Python
python 基于卡方值分箱算法的实现示例
Jul 17 #Python
Python DES加密实现原理及实例解析
Jul 17 #Python
python获取系统内存占用信息的实例方法
Jul 17 #Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 #Python
深入了解Python enumerate和zip
Jul 16 #Python
详细分析Python collections工具库
Jul 16 #Python
You might like
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
php数组使用规则分析
2015/02/27 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
python分割文件的常用方法
2014/11/01 Python
Python判断Abundant Number的方法
2015/06/15 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
Django多数据库的实现过程详解
2019/08/01 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
python利用线程实现多任务
2020/09/18 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
灵泰克Java笔试题
2016/01/09 面试题
2015毕业生实习工作总结
2014/12/12 职场文书
仓库管理制度范本
2015/08/04 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
nginx结合openssl实现https的方法
2021/07/25 Servers
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python
基于Python实现nc批量转tif格式
2022/08/14 Python