Python 实现数字炸弹

随便写的数字炸弹游戏

今天心血来潮想写一个数字炸弹游戏
游戏规则就是我随便写个数,你们来猜,猜大了就往小的猜,猜小了就往大的猜,边猜范围边变小直到猜中
数字炸弹游戏规则
主持人随机输入一个A
同学们来猜一个数B
如果B大于A
则范围
的上限变为B
如果B小于A
则范围
范围的下限变为B
直到猜中

(怎么总是感觉自己表达不清呢?)

代码实现1、

flag = eval(input())
num_a = eval(input())
while 1:
    if num_a > flag:
        print("大了")
        num_a = eval(input(f'请再猜一个小于{num_a}的数'))
    elif num_a < flag:
        print("小了")
        num_a = eval(input(f'请再猜一个大于{num_a}的数'))
    else:
        print('你猜对了, 游戏结束')
        break

感觉有点简单了,要是用函数实现最好了

代码实现2、

def number_zhadan(num_1, flag_1):
    while 1:
        if num_1 > flag_1:
            print("大了")
            num_1 = eval(input(f'请再猜一个小于{num_1}的数'))
        elif num_1 < flag_1:
            print("小了")
            num_1 = eval(input(f'请再猜一个大于{num_1}的数'))
        else:
            print('你猜对了, 游戏结束')
            break


flag = eval(input("请主持人来说一个数"))
num = eval(input("请猜一个数"))
number_zhadan(num, flag)

这样看起来就比较好一点了
但是,每次游戏开始前都要主持人选一个数,主持人会累的
而且,每次报完数范围都会变小,如果有人报了范围之外的数能够提醒一下就更好了

代码实现3、

import random  # 这里使用了random库, 可以用库里的random()函数随机产生一个数


def number_bomb(num_1, flag_1):
    list_test = [1, 20]  # 为游戏引入一个范围, 如果大了就存入list_test[1]小了就存入list_test[0]
    while 1:
        while num_1 < list_test[0] or num_1 > list_test[1]:  # 用于判断num_1的值是否在范围内
            num_1 = eval(input('你说的这个数不在范围内, 请再说一个'))
        if num_1 > flag_1:
            print("大了")
            list_test[1] = num_1
            num_1 = eval(input(f'请再猜一个小于{num_1}的数'))
        elif num_1 < flag_1:
            print("小了")
            list_test[0] = num_1
            num_1 = eval(input(f'请再猜一个大于{num_1}的数'))
        else:
            print('你猜对了, 游戏结束')
            break


flag = random.randint(1, 20)  # randint()的作用是随机产生一个整数, 里面可以有三位分别是'最小值', '最大值', '步长' 这里的范围是1到20
num = eval(input("请猜一个数"))
number_bomb(num, flag)




总结一下
算是我前段时间学习python的总结吧,本来还想设计一个GUI(Graphical User Interface,图形用户界面)界面但是能力有限,等学到了一定会补上,还有就是input()输入的值是字符串每次赋值给变量都要加上eval()函数改变其数据类型(要是本身就是字符串就不用了)。

感谢你的时间

猜你喜欢

转载自blog.csdn.net/m0_46255324/article/details/114241458