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

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

10,30:后来自己仔细看了看这个发现有点小问题,就是炸弹会变化,其他好像也算还可以,毕竟是自己的第一个小游戏,也不知道怎么改,那当他是炸弹变变变的数字大爆炸吧。
又重新打了个新的真正符合游戏规则的数字大爆炸放在新的博客了。
由于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吧")
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值