关于10.28培训的数字大爆炸以及其优化

   日期:2020-10-31     浏览:116    评论:0    
核心提示:这里是引用10.28第一次培训作业数字大爆炸-kkinn在师兄师姐的教导下,我完成了第一个python小游戏-数字大爆炸主要运用:for循环 以及if 的判断由于jupter的断线,以及之前的习惯,暂用spyder来演示(等我慢慢习惯用jupter,会改的哈哈哈)下面来分享我的制作过程以及思路:根据游戏规则:机器自动在范围内选取一个数,若与玩家输入的相同,则玩家获胜结束;若不一样,玩家输入的数字+1将成为新的范围数界,机器在其范围内再次选择一个数,直至相等下面是最开始自己根据师兄写出来的代.

这里是引用
10.28第一次培训作业数字大爆炸-kkinn
在师兄师姐的教导下,我完成了第一个python小游戏-数字大爆炸
主要运用:for循环 以及if 的判断

由于jupter的断线,以及之前的习惯,暂用spyder来演示(等我慢慢习惯用jupter,会改的哈哈哈)

下面来分享我的制作过程以及思路:
根据游戏规则:机器自动在范围内选取一个数,若与玩家输入的相同,则玩家获胜结束;若不一样,玩家输入的数字+1将成为新的范围数界,机器在其范围内再次选择一个数,直至相等

下面是最开始自己根据师兄写出来的代码图:

优化1.0版本:

代码与师兄类似,但在判断那没有完全按照师兄的思路,没有多添加一个machine_num,而是直接修改rd的范围,再用rd来判断比较,并且每次输入都有范围变化的提醒,我觉得稍微简略方便了点。

算是大功告成了吧,自己玩了下,能玩,但很快发现了新的问题:
由于习惯性手抖,经常数字打到大于范围外面去,直接扩大了范围,又得重新缩小范围,感觉一直手抖可以一直玩哈哈哈。

继续优化思路如下:
在原本if内继续使用if来进行套娃:
超出范围时,不进行范围的更改,并且提醒玩家不在范围内,要重新输入。
在范围内,再执行范围的更改,于是代码变复杂了,但更人性化了:

优化2.0:

最后想统计自己到底跟电脑玩了多少把,于是设置一个参数,在每次范围变化时参数都+1,最后统计出来,于是有了最终版:

优化3.0:


最后运行结果如下:

分享下最后代码吧:

import random
rd = random.randint(1, 1000)
min=1
max=1000
count= 0
for i in range(1,1000):
    num = int(input('your-num:'))
    if num<rd:
        if num<min:
            fanwei=(min,max)
            print(f'小于范围了,范围是{fanwei},重新输入吧')            
        else:
            min = num +1
            rd = random.randint(min, max)
            fanwei=(min,max)
            print(f'范围是{fanwei}')
            count = count+1
    elif num>rd:
        if num>=max:
            fanwei=(min,max)
            print(f'超过范围了,范围是{fanwei}重新输入吧')
        else:
            max = num -1
            rd = random.randint(min, max)
            fanwei=(min,max)
            print(f'范围是{fanwei}')
            count = count+1
    else:
        print("\nCongratulate!!!you win the game!",end="")
        break
count1 = count+1
print(f"\n但居然蠢到跟电脑玩了{count1}次!remake吧")
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服