python实例 - 猜数字游戏

猜数字游戏

  • 在游戏中,程序每一轮会随机生成一个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]
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值