首先,我们要确定目标:每打出一个数,就会提示我们猜的这个数是偏大了还是偏小了,直到猜对了为止。
确定好目标之后,就可以按照我们的这个想法进行编程。
第一步,先通过循环,来确定游戏的开始或者结束,这次运用 switch 语句,比如:
当然,如果只是这样,就只能运行一次,所以,我们还需要使用循环语句进行多次输入操作,这次就用do……while来运行,比如:
运用do……while操作的优势是,可以先把想要循环的东西输出来,最后再while进行判定,这样会使代码更加清晰,从上往下看能够更加容易读懂,不容易乱。
但是,这时候会发现,上图中出现了 menu()和 game(),这个是引用已有的函数,直接运用到主函数当中去,这时,就会产生一个问题:
为什么不直接把这两个函数放到主函数中去呢?
1. 放到主函数当中去会使主函数变长很多,像这个项目一样少的还好,要是多的,一大推都放在里面,就会使其变得很累赘,而且,工程完成后,调试起来还会非常麻烦,容易乱。
2. 像这样在外边创建一个函数,就会非常灵活,不仅能在这个项目中运行,还能在其他项目中引用,运行这个函数,不用再重新打一遍,提高了效率,节省时间。
那么,这两个函数都应该怎么定义呢?
菜单-menu()
因为我们需要输入数字进行判断是否运行,所以 menu()函数正好可以用来引导我们应该如何操作,比如:
游戏内容-game()
游戏内容就可以来判断是猜大了还是猜小了,又或者是猜对了,当然,这也需要使用循环来实现,比如:
然后,就剩下最后一个问题了,我们要如何使电脑生成这个随机值呢?而且,每次生成的这个随机值都是不能相等的,且尽可能地无规律呢?
这个时候就要使用 rand 了,rand 是一个随机生成(整型)数的一个函数,其值的范围是:0~32767,且要使用它需要包含一个头文件- <stdlib.h>,当然,如果只是输入这个,那么生成的这个随机数会一直不变,这时,我们就需要和 srand 进行配合使用,在这里,我们就又要知道时间戳这个概念了,时间戳是根据时间的不同,生成的一个不断改变的数,我们可以用这个不断改变的数,来设置随机数,通过时间,就可以设置随机数的生成器,就比如这样:
这两个的配合,完成最终的编程,所以,完整的代码为:
注:game()里面的%100+1,是要让 rand 中这些数都控制在1-100之间。
项目完成后,我们就可以来对他进行推广了。
我们可以在最后输出我们本局游戏一共尝试了多少次,这时候,就可以在 game()函数中进行增加代码打印出来,设置一个变量,每尝试一次就加1,最后输出这个变量,比如:
这样,就可以打印出猜的总次数了,其实,我们还可以再进一步的针对我们猜的这个个数的多少,再进行一个评估,是优秀还是良好等,再给出一些话,会让这个游戏好玩一点。