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的gevent框架的入门教程
Apr 29 Python
python实现决策树
Dec 21 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 Python
Python绘制组合图的示例
Sep 18 Python
pycharm实现猜数游戏
Dec 07 Python
Pandas数据类型之category的用法
Jun 28 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
PHP 存储文本换行实现方法
2010/01/05 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
python发腾讯微博代码分享
2014/01/10 Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
python中xrange和range的区别
2014/05/13 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python configparser模块操作代码实例
2020/06/08 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
对孩子的寄语
2014/04/09 职场文书
党支部综合考察材料
2014/05/19 职场文书
食堂标语大全
2014/06/11 职场文书
2014年协会工作总结
2014/11/22 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
Go语言并发编程 sync.Once
2021/10/16 Golang