本期demo要求:
小游戏:最强大脑
程序会产生几个数字
1 4 5 7 8
但是两秒钟后消失
输入: 1 4 5 7 8
对的话又随机产生 但是增加一个数字
再对再产生
错误后显示GAME OVER!并且退出程序
思考:
1.需要用到随机数来产生这些数字
使用rand()函数产生C语言的随机数,需要加入stdlib.h和time.h在表头,用到rand(),需要给srand()函数提供一个参数,不然系统会给定一个默认的参数,如果参数为一任意的常量的话,得到的也是伪随机数。
srand(time(NULL));
//srand()是产生随机数的指令 time(NULL)指按照时间产生随机数
int temp = rand() % (n-1);//取余到N-1,即为产生0到输入数字减1的范围的随机数(可以在后面进行加减乘除操作进行进一步范围限定)
例:
int temp = rand() % 9 + 1; //rand()随机产生一个浮点数,没有区间,rand()%9+1,是先把rand()产生的浮点数自动取整,再对9取余,最后+1.最终结果是随机产生一个1到9之间的整数,即有可能是1,2,3,4,5,6,7,8,9
2.记忆这些数字需要延时2秒
使用sleep指令即可
sleep(等待的毫秒数);//如等待2秒为 sleep(2000);
3.需要让先前的数字隐藏
两种方法:
(一):直接刷多行空把先前的数字顶上去
for(i=0;i<100,i++)
printf("\n");
(二):系统指令:清屏
system("cls");
4.每次产生的数字需要依次多一个
for循环即可,同时判断输入的结果是否与随机数正确
请根据以上内容作为参考进行思考,先练习效果更佳
个人的解决方案,仅供参考:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main(){
int count = 3; //记录每次生成多少个随机数
unsigned int seed = time(NULL); //1000
//设置随机数的种子
srand(seed);
for(int i = 0; i < count; i++){
//生成一个随机数
int temp = rand() % 9 + 1;
printf("%d ", temp);
}
printf("\n");
// 延时2s
Sleep(2000);
//for(int i = 0; i < 10000000000/15*2; i++);
//刷新屏幕
system("cls");
/* mac
for(int i = 0; i < 20; i++){
printf("\n");
}
*/
int temp;
printf("请输入:");
//重新设种子和之前生成时的种子一样
srand(seed);
//接收用户输入 一个一个接收
// 1 2 3
// 1 2 4
for(int i = 0; i < count; i++){
scanf("%d", &temp);
//获取对应的生成的随机数
int old = rand() % 9 + 1;
//比较输入的和随机数是否相同
printf("old:%d\n", old);
if (temp != old){
printf("GAME OVER!\n");
exit(EXIT_SUCCESS);
}
}
printf("正确!\n");
return 0;
}
注意事项:
随机数需要加上#include <time.h>的头文件
延时需要加上#include <windows.h>