猜数字小游戏其实还是比较简单的,他的写法也是多种多样。
这里我们分为二个功能模块来实现:
1.菜单界面,功能就两个要么就玩,要么就退出;这里我用一个menu()函数来实现;
2.就是猜数字,我用game()函数实现。对于大于目标数字的数 提示猜大了!对于小于目标数字的数 提示猜小了!若猜中了 那就 提示恭喜你,猜对了!由于这是个循环猜中了就退出,用break语句实现;
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu(void);
void game(int);
int main()
{
//利用函数实现猜数字的小游戏
//首先menu函数实现菜单栏,menu函数并不返回值
//game函数实现具体的判断,也不返回值;
//rand()函数是返回一个有种子设定好的值
//srand()函数是返回种子的函数,参数使用的是time()的返回值
//time()函数随时间一直都在变
srand((unsigned int)time(NULL));//返回种子的随机值
int num1 = rand() % 101 +900;//如果我想要一个100-200之间的数呢
int num2 = 0;
while(1)
{
menu();
scanf("%d", &num2);
switch(num2)
{
case 1:
{
game(num1);
break;
}
case 0:
{
printf("不想玩了\n");
goto flag;
}
default:
{
printf("输入有误请再次输入合适的数字!\n");
}
}
}
flag :
return 0;
}
void menu(void)
{
printf("***&&********&&********&&&\n");
printf("***&&**1.0 play******&&***\n");
printf("***&&**0.0 exit******&&***\n");
printf("***&&********&&********&&&\n");
return;
}
void game(int num1)
{
int num = 0;
while(1)
{
//输入所猜测的数字
scanf("%d", &num);
if(num == num1)
{
printf("猜到了!\n");
break;
}
else if(num > num1)
{
printf("猜大了!\n");
}
else
{
printf("猜小了!\n");
}
}
return;
}
注意:其中我们猜的目标数字是 有随机数生成的。生成随机数的函数是rand(),但是每次由rand()生成的随机数都是固定不变动的,这是因为rand()函数生成随机数的那个数(我们称为种子)是固定不变的,这就导致我们生成的随机数是固定不变的,所以我们必须使种子变动起来,才能使我们的随机数变动起来。产生种子的函数是srand()函数,为了使其产生的种子变成随机值,那我们给他的参数就得是变动的,这里我们用C语言提供的一个 与时间有关的函数 time() 他的返回值就是当下运行程序的时间,这也是变动的。需要注意time(NULL) 他的参数我们写成null即可。(若这块有兴趣探索的朋友可以自己去了解)这样我们一环扣一环 time()返回当下的时间——>srand((unsigned int) time(NULL))以返回的时间为参数生成随机的种子——>rand()函数才能生成随机数。
OK,今天就分享这些,愿于你有益,我的朋友!