Python 自动程序数字炸弹游戏
2023-12-28 10:43:51
在一个数字范围内,有一个数字作为炸弹,谁猜中这个炸弹就被惩罚.比如范围是1~99,炸弹是60,然后猜了一个数字是30,30不是炸弹,那么现在猜数字的范围就缩小到30~100,又猜了一个数字80,80也不是炸弹,那么现在又缩小范围到30~80,每次猜不能猜边界上的值,直到有人猜中这个炸弹
import random, time
value_list = [i for i in range(1, 101)] # 生成一个数字列表
print(value_list)
first_index = 0 # 开始索引
end_index = len(value_list) - 1 # 末尾索引
print(first_index, end_index)
num = random.randint(1, 100) # 随机生成一个数字炸弹
print(value_list[99])
print('随机数字是:', num) # 打印随机数
while True:
d_index = int((first_index + end_index) / 2) # 取中间索引
print('搜索:', value_list[d_index], first_index, end_index) # 打印选择数据及索引值
time.sleep(1) # 等待1s
if num == value_list[d_index]: # 随机值和选到的值相同
index = value_list.index(num) # 获取当前值在列表中的索引
print('随机数字的索引是:', index, 'value=', num) # 打印结果
break # 结束循环
else:
if num > value_list[d_index]: # 随机值大于选择的值
first_index = d_index # 将当前索引值赋值给开始索引
else:
end_index = d_index # 将当前索引赋值给末尾索引
if first_index == end_index - 1: # 搜索到最后两个值
if num == value_list[end_index]: # 对最大的索引数据进行比较,相同则输出
index = value_list.index(num)
print('随机数字的索引是:', index, 'value=', num)
break
elif num == value_list[first_index]: # 对最小的索引数据进行比较,相同则输出
index = value_list.index(num)
print('随机数字的索引是:', index, 'value=', num)
break
else: # 随机值不是最大值也不是最小值
print(value_list[d_index], first_index, d_index, end_index)
print('未找到索引')
break
文章来源:https://blog.csdn.net/2202_75561400/article/details/135258109
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!