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中使用第三方模块的教程
Apr 27 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
Python 读写文件的操作代码
Sep 20 Python
使用python socket分发大文件的实现方法
Jul 08 Python
Django 路由控制的实现
Jul 17 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
Python 下载及安装详细步骤
Nov 04 Python
Python 中判断列表是否为空的方法
Nov 24 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
python实现图片横向和纵向拼接
Mar 05 Python
Django正则URL匹配实现流程解析
Nov 13 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 array_unique之后json_encode需要注意
2011/01/02 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
python使用xslt提取网页数据的方法
2018/02/23 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
python 利用toapi库自动生成api
2020/10/19 Python
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
前台接待的工作职责
2013/11/21 职场文书
自我鉴定书面格式
2014/01/13 职场文书
四年级评语大全
2014/04/21 职场文书
2014年调度员工作总结
2014/11/19 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
郭明义电影观后感
2015/06/08 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL