柠檬花开

这是一个成长的空间,有你有我有大家,心灵在这里起飞,美好的一切从这里开始,安宁,舒心,沁人心脾,花香来自心灵深处……

分支结构3——猜数游戏(高一)

一、需求分析

        使用Python开发一个猜数小游戏。在游戏中,程序每一轮会随机生成一个0~1024之间的数字,用户输入猜测的数字,程序告诉用户猜大了还是猜小了。在一定次数内猜对,则本轮用户获胜,否则本轮用户失败。
         每一轮开始时,程序会要求用户输入用户名。

        程序会一直运行,直到用户输入“3”,停止游戏。在每一轮游戏开始前,输入“1”可以查看用户的输入历史。

1.知识点

(1)随机生成数字,涉及Python的随机数模块。

(2)用户输入数字,程序输出结果,涉及Python的输入及输出模块。

(3)程序会自动开始下一轮,涉及Python的循环模块。
 (4)判断用户的输入,涉及Python的条件判断。
 (5)查询用户的输入历史,涉及Python的字典和列表。

2.提示
        如何判断每一轮猜测多少次以内算猜测成功,多少次以上算猜测失败?根据二分法的原理,假设答案的范围是M~N,那么最多猜测log2(M+N)次就能猜测出正确答案。在这个案例中,范围为0~1024,以2为底,1024的对数为10,所以最多猜测10次就能得到正确答案。

例如,答案为821,用户猜测的时候,按照如下逻辑进行。
 (1)(0+1024) / 2 = 512,猜512,告诉用户比答案小。
 (2)(512+1024) / 2 = 768,猜768,告诉用户比答案小。
 (3)(768+1024) / 2 = 896,猜896,告诉用户比答案大。
 (4)(768+896) / 2 = 832,猜832,告诉用户比答案大。

……

(9)(820+824) / 2 = 822,猜822,告诉用户比答案大。

(10)(820+822) / 2 = 821,猜821,告诉用户正确。

二、核心代码构建

        

三、 调试与运行

运行以后的界面如图所示。

图 猜数游戏的启动界面

输入2继续游戏,进入游戏界面,用户输入数字进行猜测,如图

                   猜数游戏的进行画面

猜测完成以后,无论成功还是失败,都重新开始游戏。多次游戏以后,输入1可查看历史记录

 四、动手实践

请修改阶段案例中的程序,实现自定义答案的范围。
 提示:

在Python 3中计算以2为底的某个数的对数,使用如下两行代码:
      import math
      max_try_num=math.log2(1024)

评论
热度(1)

© 柠檬花开 | Powered by LOFTER