前言
该怎样实猜数字游戏,接下来跟着我一步一步来看
一、菜单
我们居然是猜数字游戏肯定菜单是少不了的,具体怎样实现,来,看过来,不用过多的东西,我们用一个函数来实现
代码如下
void mevc()
{
printf("********************\n");
printf("****** 1.play ******\n");
printf("****** 0.quit ******\n");
printf("********************\n");
}
这里是直接打印菜单在屏幕上所以不用返回值
玩家想玩游戏就选择1,不想玩就选择0
二、选择
玩家可以根据自已来选择,所以需要用scanf让玩家输入,然后根据输出的值进入下一步
代码如下:
int main()
{
mevc();
do
{
printf("请选择游戏->");
scanf("%d", &input);
switch (input)
{
case 1:
play();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,继续!!\n");
break;
}
} while (input);
return 0;
}
这里有多种选择,所以用switch()语句来实现,知道玩游戏登进,都会有一次选择,想玩或者不玩直接退出,所以do-while语句来实现
三.猜数字
接下来是主要实现猜数字游戏,这里我们定义一个函数来实现猜数字的代码play()函数,选择1我们就进入猜游戏中,既然是猜数字,那就要随机产生一个数字供玩家猜测,这里涉及了一个函数rand(),该函数可以随机产生一个数字,它返回是一个整型0-32767的数字
代码如下(示例):
void play()
{
int a = 0;
int ret = rand() % 100 + 1; //因为这里要实现1-100的随机数,所以%100-1就是1-100的数
while (1)
{
printf("请猜数字->");
scanf("%d",&a);
if (a<ret)
{
printf("猜小了,继续\n");
}
else if (a>ret)
{
printf("猜大了,继续\n");
}
else
{
printf("恭喜你,猜对了\n");
break; //猜对我们就跳出,重新选择,break跳出整个循环
}
}
}
这里我们有人经常范的错误就是把int ret = rand() % 100 + 1放在while循环里,这样的话每次猜数字都在变,就很难猜的对数字,要放外面
注意
这里用随机数要用到这个
srand((unsigned int)time(NULL));
经过测试会发现,无论怎么产生随机数,再来玩一次总是重复这几个数字,所以需要在rand前引用srand函数,但是srand函数又需要一个随机值才能让rand生成随机值这时可以用时间戳来实现;至于时间戳,不懂得可以百度一下,它产生的数字是随着时间在变化
四.全部代码如下
//实现猜1-100的数字游戏
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
//菜单
void mevc()
{
printf("********************\n");
printf("****** 1.play ******\n");
printf("****** 0.quit ******\n");
printf("********************\n");
}
//猜数字
void play()
{
int a = 0;
int ret = rand() % 100 + 1; //产生一个1-100的数字
//判断
while (1)
{
printf("请猜数字->");
scanf("%d",&a);
if (a<ret)
{
printf("猜小了,继续\n");
}
else if (a>ret)
{
printf("猜大了,继续\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
mevc();
int input = 0;
srand((unsigned int)time(NULL)); //时间戳
do
{
printf("请选择游戏->");
scanf("%d", &input);
switch (input)
{
case 1:
play();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,继续!!\n");
break;
}
} while (input);
return 0;
}
好了,就先到这,有兴趣自己去玩下哈哈,如有什么建议下面评论哦,以上内容那里不懂也可以在下面评论,如有那里有错多多包涵和指出,再见了大家!!!
|