前言:今天我们将学习用代码来制作猜数字小游戏
废话不多说让我们开始今天的学习吧!👊
猜数字游戏,我们一打开就能弹出菜单进行选择进入游戏或者退出游戏。那么此时我们应该用一个do...while循环,因为它的特点是先执行一次再进行判断。同时用一个函数来实现菜单的功能
#include <stdio.h>
void menu()
{
printf("#################");
printf("###1.play 0.exist###");
printf("#################");
}
int main ()
{
menu();
int input = 0;
do
{
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case 1:
printf("登入成功");
break;
case 0;
printf("退出游戏");
break;
default :
printf("输入错误,请重新输入");
break;
}
}while(input);
return 0;
}
以上是第一部分的实现,接下来对游戏的实现来写代码
这里呢我们将拿取一小部分来进行讲解
case 1:
game();
将case 1改为这种。同时在main函数之前来写game函数l.在game函数中我们要设置随机数,此时我们要用到库函数rand,此时我们要用到MSDN对rand进行查找
在这里我们会发现rand没有参数,并且返回值是int类型。rand是库函数,在使用时要引用头文件stdlib.h。然后继续往下看我们会发现
在使用rand之前我们要使用srand。对于srand我们依旧陌生,没事没事,再次打开我们的MSDN来对srand的用法进行查找
while(1)
{
int guess = 0;
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了");
}
else if(guess<ret)
{
printf("猜小了");
}
else
{
printf("恭喜你猜对了");
break;
}
}
从MSDN的查找我们会发现srand没有返回值,但是有参数。使用时同样要引用stdlib.h头文件。
解决完这两个问题,我们来继续写game函数
void game()
{
srand(100);
int ret = rand();
}
但我们定义完game函数后,再进行整段代码的运行会发现,srand的参数放为100时,代码运行结果依旧为同一个数。将参数改为200时发现代码运行结果虽然改变了但依旧是同一个数。所以我们就可以知道srand的参数应该要放一个可以改变的量。那什么量在一直不断的改变呢?没错就是时间戳。百度搜索走起
这就是时间戳,那么我们该用哪个变量来表示呢?没错就是time,time也是一个库函数,我们一起来用MSDN来对它的功能进行查找吧
time的返回类型是time_t,参数是time_t。同时在下面remarks中我们可以知道time的参数可以为空,并且在使用时要引用头文件time.h
void game()
{
srand((unsigned int)time(NULL));
int ret = rand();
}
当我们把代码运行时,会发现,产生的随机数字很大并且非常快的点的话会产生相同的数。那么此时我们再将代码进行改进。
产生的数字很大,我们模100,我们会得到0~99的数字,再加一得到1~100。非常快的点还有产生相同的数,这种情况的话我们要把srand放在主函数中,这样就不会出现这种情况
void game()
{
srand((unsigned int)time(NULL);
int ret = rand();
}
ok,这里我们已经处理完随机数,接下来处理猜数字的步骤。
while(1)
{
int guess = 0;
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了");
}
else if(guess<ret)
{
printf("猜小了");
}
else
{
printf("恭喜你猜对了");
break;
}
}
这里是一次进行比较,要进行多次的话,要使用while循环。OK,以上就是我们的分析,下面直接上代码。
#define_CRE_SECURE_NO_WARNINGS.
include <stdio.h>
#include <stdlib.h>
void menu()
{
printf("#################");
printf("###1.play 0.exist###");
printf("#################");
}
void game()
{
int ret = rand()%100+1;
while(1)
{
int guess = 0;
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了");
}
else if(guess<ret)
{
printf("猜小了");
}
else
{
printf("恭喜你猜对了");
break;
}
}
}
int main ()
{
menu();
int input = 0;
do
{
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case 1:
printf("登入成功");
break;
case 0;
printf("退出游戏");
break;
default :
printf("输入错误,请重新输入");
break;
}
}while(input);
srand((unsigned int)time(NULL);
return 0;
}
好哒以上就是猜数字游戏的实现。
创作不易还望各位看官老爷点点赞😘😘喜欢就点个关注噢,今天的内容就到这结束啦🤗🤗