听说有人喜欢玩猜数字~尤其是懂二分法的程序员,所谓猜数字游戏就是,我心里默想一个数字n,你猜,每一次猜测我会给你一个反馈告诉你真实的数字和你猜的数字的大小关系,看看你多少次能猜对~
如果很喜欢玩,又恰好没人陪玩的话,来和机器玩啊~
代码如下:(基于python环境)
import random
print('**************************猜数字游戏**************************')
print(' 你能在有限机会之内猜到一个0-100之间的数字么? ')
print('************************************************************')
print('请选择难度(简单[S]/普通[N]/困难(D)/地狱(H)):')
x=input() # 获取用户输入
ans = random.randint(0, 100) #产生0-100的随机整数
while (x!='S')&(x!='N')&(x!='D')&(x!='H'):
print('无效的输入,请输入S/N/D/H中的一个')
x=input()
if x=='S':
print('简单难度你有10次机会\n')
cnt=10
elif x=='N':
print('普通难度你有8次机会\n')
cnt=8
elif x=='D':
print('困难难度你有5次机会\n')
cnt=5
elif x=='H':
print('地狱难度你有3次机会\n')
cnt=3
else:
pass
left=0
right=100
flag=0 # 标志着数字有木有被猜对
for i in range(1,cnt+1):
print('第%d次猜测,该数字在%d到%d之间:'%(i,left,right))
a=int(input())
while((a<left)|(a>right)): # 循环直到得到有效输入
print('无效的输入!请输入%d到%d之间的数字。'%(left,right))
print('第%d次猜测,该数字在%d到%d之间:'%(i,left,right))
a=int(input())
if a==ans:
print('恭喜你!经过%d次尝试,终于猜对了!'%i)
flag=1
break
elif ans>a:
print('猜错了哟!该数字大于%d'%a)
left = a+1
else:
print('猜错了哟!该数字小于%d'%a)
right = a-1
if(flag):
pass
else:
print('非常遗憾!你的机会用光了!真正的数字为:',ans) # 规定次数未猜对
我也无聊的玩了一把~如下图
负责任的说,只要遵守二分策略,运气再差也能在普通难度里面把把取胜,如果想在地狱难度游刃有余,我 不知道除了运气还能怎么办~唉,我太难了.jpg
来源:CSDN
作者:gbl5555
链接:https://blog.csdn.net/G_B_L/article/details/104674001