今天,我来为大家介绍一下猜数字游戏
题目:先由计算机"想"一个1至100之间的数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此来反映猜数者“猜”的水平。
猜数字游戏用到的库函数
- 随机函数rand()
- #include<stdlib.h>
RAND_MAX在是stdlib.h中定义,不大于双字节整数的最大值32767
- 产生[0,RAND_MAX]之间的随机数
magic=rand();
- 产生[0,b-1]之间的随机数
magic=rand()%b;
- 产生[a,a+b-1]之间的随机数
magic=rand()%b+a;
- 随机函数srand
为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的“随机化”
- 通过输入随机数种子,产生[1,100]之间的随机数
scanf("%d",&seed);
srand(seed);
magic=rand()%100+1;
- 使用计算机读取其时钟值并把该值自动设置为随机数种子,产生[1,100]之间的随机数
- 函数time()返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子
#include<time.h>
srand(time(NULL));
magic=rand()%100+1;
下面,让大家详细看看rand()函数、srand()函数、time()函数的资料 以及时间戳的详细资料
看完上面这些内容,大家一定迫不及待地想知道究竟用怎样一段代码来实现这样一个猜数字游戏呢,莫急莫急,听我仔细道来。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//首先,我们先来打印一个简易菜单
void menu()
{printf("#########################################\n");printf("#################1.play##################\n");printf("#################0.exit##################\n");printf("#########################################\n");
}
//RAND_MAX--rand()函数能返回随机数的最大值
//0--32767之间的随机数
void game()
{//1.生成随机数//2.猜数字int random_num=rand()%100+1;int input=0;while(1){printf("请输入猜的数字:>\n");scanf("%d",&input);if(input>random_num){printf("猜大了\n");}else if(input<random_num){printf("猜小了\n");}else {printf("恭喜你,猜对了\n");break;}}
}
int main()
{int input=0;//设置了随机数的生成器//只需要设置一次,所以把srand放在主函数里面//如果频繁设置,则可能导致生成的随机数不够随机srand((unsigned)time(NULL));do{menu();printf("请选择:>\n");scanf("%d",&input);switch(input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("选择错误,请重新输入!\n");break;}}while(input);return 0;
}
好啦,这就是猜数字游戏的实现了,一个用六十几行代码就可以实现的游戏,最近才学,实操一下,确实挺有成就感的啦
下面,我来运行一下我写的这个游戏,看我需要多少次才能猜对呢?
我猜了8次噢 快来玩玩看 你们要猜多少次才能猜对呢
敬请期待你们的结果!!!