这里是引用
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吧")