初学Python写猜数字游戏
众所周知,当我们学习randint这个函数时,就会了解到猜数字游戏这么一个东西。 Python中的randint函数是用来生成随机数的一个函数。系统使用这个函数来随机生成一个已知区间的数字,而我们要做的就是猜出这个数字是多少。无止境的猜测是枯燥无味的,我们通常使用print语句提供一些提示(大了还是小了)。我们只需要运用if来判断该给哪一种提示,如下:
我们引入random库使用randint函数,定义变量i=random.randint(1,100)即在1-100内随机生成一个数字。在定义g=0,当g不等于i时让代码循环运行,从而使玩家可以一直猜测直到答对停止循环。不同情况用print语句输出不同提示,使游戏更具可操作性。而input是为了让电脑知道你所猜测的答案,int可使我们输入的字符串变成可以进行数学运算的数字使电脑判断出提示语句。 而这显得过于枯燥无味,我们增加一点点细节。 Python函数库中有winsound这个函数库,其内有Beep这个有趣的函数,它的作用就是发出特定频率的音,并且可以调节发音时间。winsound.Beep(500,1000),其中500为频率,1000为时间,单位分别为hz和ms。不同的答题次数我们可以制作不同的评级,另外加上不同的音,这会显得有趣的多。如果你有足够的实力,使用Beep创作一段音乐也不是不可以,不过这十分麻烦。而现在我们要做的就是统计玩家的猜测次数,这非常简单,我们只需要在循环语句中加入计数器即可。
这就完成了吗?或许我们可以在增加一点点细节。有的玩家总是猜不对,而这样的提示过于笼统,我们是否可以提示的再详细一点?数字是电脑随机生成的,我们本身是不知道答案的,那么我们怎么样知道答案?显然我们可以直接print出来,可这也太没有意思了。
One hundred years later 我们可以再次使用计数器,让它一直转,直到进入答案上下特定范围内,使用if语句print出来。可是这样玩过几次就会发现提示与答案的差值是固定的,这又失去了意义。怎么样可以随机生成提示呢? Tow hundred years later 或许可以再次使用random.randint这个函数,我们重新定义一个变量,让它一直循环运作,知道随机生成的数进入答案上下的特定范围然后输出,这样就保证了提示的随机性。
现在我们要思考另一个问题了,什么时候提示,提示多少次?我是这样设计的,开始时有一次选择提示的机会,当答题次数超过五次再次弹出是否需要提示,第一次提示错过不再出现,超过五次后的提示选择了否可继续在下一次选择提示,但有且只有一次机会。
先定义n=0,通过使用变量n来使提示次数只能为一次。 后来又学习了一个新的函数库os,里面的os.system可以调用电脑中的文件。通过这个,我们可以改进上面的评级功能,不同评级调用不同音频文件。最后我们再加入是否继续游玩让玩家可以选择继续或退出,适当改变从属关系让代码按照我们的意思运行,这样我们就完成了猜数字游戏升级版。
(以上为完整代码)