猜数字游戏
- 在游戏中,程序每一轮会随机生成一个0~1024之间的数字,用户输入猜测的数字,程序告诉用户猜大了还是猜小了。在一定次数内猜对,则本轮用户获胜,否则本轮用户失败。每一轮开始时,程序会要求用户输入用户名。程序会一直运行,直到用户输入“3”,停止游戏。在每一轮游戏开始前,输入“1”可以查看用户的输入历史。
- 如何判断每一轮猜测多少次以内算猜测成功,多少次以上算猜测失败?
- 根据二分法的原理,假设答案的范围是M~N,那么最多猜测log2(M+N)次就能猜测出正确答案。在这个案例中,范围为0~1024,以2为底,1024的对数为10,所以最多猜测10次就能得到正确答案。
- 程序代码:
import random history = { } def creat_answer(): return random.randint(0, 1024) def try_to_guess(name, answer): # 猜数的次数 try_num = 0 while try_num < 10: guess_answer = int(input("请输入一个数字:")) if guess_answer < answer: print("你猜小了~") history[name].append('失败') elif guess_answer == answer: print("bingo,你猜对了~") history[name].append('成功') break else: print("你猜大了~") history[name]