2020.10.28日培训练习一

``这天的培训活动虽然不长,但我还是从中学到了一些东西,之前自学的时候,一些数据类型学的时候没有认真记,在脑子里并不是根深蒂固。数字运算符,无非数学当中的加减乘除运算,乘方,取整,取余,幂运算,这在生活中运用是小问题,但要让机器也会那就有点活要干了,首先要让它听懂,人与人之间的交往尚且需要组织语言,而不懂人情世故的计算机就需要我们耐心点了,你不好好跟它说话,它就会给你报一堆错,虽说难以对话,但它还是很听话的,让它跑程序绝对是尽职尽责,鞍前马后,任君驱使,只要不终止,它会一直工作下去,机器都在打工了,啊,我还在做什么,赶紧学数学去,数分做了没,高代做了没,解几呢,敲完还不快去;咳咳,跑题了,布尔值,真值假值,0假1真,True与False;l列表,字典,元典,集合,四者区别,增删改查……林林总总,这些有时间再看看吧,再不济,多抄几遍,也不会费多少时间。
以上都是废话,下面才是。

数字大爆炸
先了解一下游戏规则,系统随机选取一个随机数,给定范围,范围之内,人与机器轮流猜测,每猜一次,判断是否为随机数,不是的话,提示过大还是过小,再猜,直到猜到为止,若是随机数,行了,没活干了。
再看涉及知识点,字符输入输出,逻辑设计(if,while,for等),函数包的调用,其他的不知道还有什么懂得都懂,哈哈哈。
最后在看看怎么设计这个游戏吧
1、简述下游戏规则
2、选好随机数,请人与机做好准备
3、人先猜,猜完系统判断,=,>,<三种分类讨论,猜完机器根据新范围猜,谁先猜中谁赢,猜赢了游戏也结束了,太单调了,不行,得整点幺蛾子
4、开头倒数
5、计算猜的次数
6、限定猜的次数,猜多了也会爆炸,请珍惜最后的次数
7.over
以下是代码,码字不易,有不对之处,欢迎指正

import random#导入随机模块
import time#导入时间模块
print("游戏为猜数游戏,双方对弈,在有限次数内猜数,谁先猜中就炸") #介绍游戏规则    
print("随机数已生成,做好准备,游戏将在三秒倒数后开始")#游戏提醒
dic={
    
    'min':1,'max':1000} #用字典接收min与max的变化
j = 3    #开始计数
while 0 < j:
    print(j,end='\t')
    time.sleep(1)#时间间隔
    j -= 1
print("\n游戏开始")#游戏开始
print("随机数开始范围是[1,1000]")#告知范围
guess_time = 0#记录次数
rd=random.randint(dic['min'],dic['max'])#生成随机数
while True:#开始循环
    your_num = int(input("请你猜一个在该范围中的数:"))#提醒用户输入
    while your_num<dic['min'] or your_num>dic['max']:#判断用户输入是否有误
        your_num = int(input("你输入数字超出范围,请重新输入:"))#提醒重新输入
    guess_time += 1#次数变化
    if your_num < rd:#一情况
        print(f"你的数字比答案小,数字范围将改为[{your_num+1},{dic['max']}]")#提醒用户与答案的差距,范围将发生改变
        dic['min']=your_num+1#范围变化
        # rd = random.randint(dic['min'], dic['max'])
        machine_num=random.randint(dic['min'],dic['max'])#机器选数
        print(f'机器猜测的数字是{machine_num}')#通报
        if machine_num<rd:#一情况,以下参上,不再赘述
            print(f"机器的数字比答案小,数字范围将改为[{machine_num + 1},{dic['max']}]")
            dic['min'] = machine_num + 1
        elif machine_num>rd:
            print(f"机器的数字比答案大,数字范围将改为[{dic['min']},{machine_num-1}]")
            dic['max'] = machine_num -1
        else:
            print('机器猜中了,机器要炸了')
    elif your_num > rd:
        print(f"你的数字比答案大,数字范围将改为[{dic['min']},{your_num-1}]")
        dic['max'] = your_num - 1
        # rd = random.randint(dic['min'], dic['max'])
        machine_num = random.randint(dic['min'], dic['max'])
        print(f'机器猜测的数字是{machine_num}')
        if machine_num<rd:
            print(f"机器的数字比答案小,数字范围将改为[{machine_num + 1},{dic['max']}]")
            dic['min'] = machine_num + 1
        elif machine_num>rd:
            print(f"机器的数字比答案大,数字范围将改为[{dic['min']},{machine_num-1}]")
            dic['max'] = machine_num -1
        else:
            print('机器猜中了,机器炸了')
            break
    else:
        print('妙啊,你炸了!')
        break
    if guess_time == 9:
        print("猜测次数过多,游戏结束")
        break
print("欢迎下次再来")
print(f"你一共猜了{ guess_time}次" )

下面是自己玩的一把
在这里插入图片描述

此次作业到此就接近尾声了,在最后我还想多说几句,非常感谢师兄师姐的培训,在这个领域上我可以说是小白一个,对许多方面都不熟悉,甚至是不知道,但看到部门的朋友们都这么优秀,我也要逼着自己去学,我也乐意进步,不叨嗑了,还有数学要写,溜了溜了。

猜你喜欢

转载自blog.csdn.net/weixin_50335890/article/details/109357810