猜数字游戏
- 1.代码展示
- 2.菜单设计
- 3.主函数部分
- 3.随机数设计
所属专栏:C语言
博主首页:初阳785
代码托管:chuyang785
感谢大家的支持,您的点赞和关注是对我最大的支持!!!
博主也会更加的努力,创作出更优质的博文!!
关注我,关注我,关注我,重要的事情说三遍!!!!!!!!
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函数就起到作用了。