猜数字游戏
- 1.代码展示
- 2.菜单设计
- 3.主函数部分
- 3.随机数设计
1.代码展示
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("************************\n");
printf("*** 1.play 0.exit ***\n");
printf("************************\n");
}
void game()
{
int ret = rand() % 100 + 1;
int gess = 0;
while (1)
{
printf("请猜数字:>");
scanf("%d", &gess);
if (gess > ret)
{
printf("猜大了\n");
}
else if (gess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误\n");
break;
}
} while (input);
return 0;
}
2.菜单设计
printf("************************\n");
printf("*** 1.play 0.exit ***\n");
printf("************************\n");
菜单设计就是用三个printf就行了,现在初学不需要很高级的菜单,只要这个菜单能表达我们想要表达的事情就行了。
这个菜单告诉我们选择1进行游戏,选择0退出游戏。
3.主函数部分
有了菜单我们就可以进行选择,二我们想玩玩一把再玩一把,这个时候就可以用到我们学的循环语句,这个我们选择do……while语句,这是因为do……while至少会循环一次,也就是说就算我我们一把都不玩我们都会进去一次,然后选择0退出。
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误\n");
break;
}
} while (input);
3.随机数设计
设置随机数可能就是整个游戏的精髓。
这了设置随机数我们要涉及到三个库函数。
-
int rand (void);//生成随机数 。头文件#include <stdlib.h>
-
void srand (unsigned int seed);//设置随机数起点。头文件#include <stdlib.h>
-
time_t time (time_t* timer);//时间戳。头文件#include <time.h>
这里说明一下我们的rand和srand一定是配套出现的。
因为如果只有rand的话你可以理解为他只会生成一遍的随机数,生成后就不会改变了,以后你在输出随机数的时候都是一样的,二我们srand是一个重置的过程,这样他们两个配合起来就可以生成不一样的随机数了。
而我们的srand生成随机数的范围是0-RAND_MAX,也就是0-32767。
而现在我们想要的到0-100的数的话只要rand()%100就能得到0-99的数在+1就可以得到1-100的数了也就是:rand()%100+1。
同时srand()参数也要是个随机数,这听起来好像有点相互矛盾,但是准确来讲因改说是变动的数,那生活中什么一直在变呢。时间,我们的时间无时无刻都在变动,这个时候time函数就起到作用了。