作为编程初学者,大家想必都和我一样,想写出一个可以稍微把玩的代码,那么今天我就带着猜数字游戏来喽,希望大家有所收获,在大家重复的敲代码生活中增添一分色彩!
作者:Shining-point
作者的博客主页:Shining-point的博客
如果觉得博主的博客写的不错或者有所收获的话,希望大家多多点赞 评论收藏,你们的支持是我的最大动力,不驰于空想,不骛于虚声,我们一起加油!!!
猜数字游戏呢,就是让你猜一个数,然后根据提示的猜大了或者猜小了继续猜,直到猜中为止,相信大家都在现实中玩过,我也就不再过多赘述,请看具体思路和代码实现
逻辑:
1.电脑自动产生一个1-100之间的随机数
2.玩家猜数字
a.猜对了,恭喜你,游戏结束
b.猜错了,将被告知猜大了还是猜小了,继续猜,直到猜对
3.游戏可以一直玩,除非退出游戏
void menu() //使用自定义menu()函数来打印菜单,不需返回值故使用void
{
printf("************************************\n");
printf("*************1. play ***************\n"); //选择1开始游戏
printf("*************0. exit ***************\n"); //选择2退出游戏
printf("************************************\n");
}
#include
int main()
{
int input = 0;
do //游戏至少要玩一次,故使用do while循环
{
menu(); //此处调用自定义menu函数用于打印菜单
printf("请选择:>");
scanf("%d", &input);
switch (input) //switch语句用于选择开始游戏or退出游戏
{
case 1:
game();//调用自定义game函数执行游戏主逻辑
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
猜数字游戏的关键在于如何产生随机数,试想一下电脑中什么东西一直在发生变化,没错,是时间。我们在这里引入一个新的概念——时间戳
那么我们如何在C语言中使用它呢,请看如下代码
//使用srand时需要引头文件stdlib.h //使用time时需要引头文件time.h
srand((unsigned int)time(NULL)); //时间一直在发生变化--时间戳,设置一个随机的起点
有了它,再配合C语言中的rand函数,我们就可以得到一个随机数啦
//生成随机数
//使用rang函数时需要引头文件stdlib.h
int ret = rand() % 100 + 1;
//rand函数返回了一个0-32767之间的数字 //%100的余数为0-99,然后+1,范围就是1-100
void game() //不需返回值故使用void
{
int ret = rand() % 100 + 1; //rand函数的使用
int quess = 0;
while (1) //判断条件一直为真,游戏可以一直玩下去
{
//猜数字
printf("请猜数字(范围1-100):>");
scanf("%d", &quess);
if (quess < ret)
{
printf("猜小了\n");
}
else if (quess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
#include
#include
#include
void menu()
{
printf("************************************\n");
printf("*************1. play ***************\n");
printf("*************0. exit ***************\n");
printf("************************************\n");
}
void game()
{
int ret = rand() % 100 + 1;
int quess = 0;
while (1)
{
printf("请猜数字(范围1-100):>");
scanf("%d", &quess);
if (quess < ret)
{
printf("猜小了\n");
}
else if (quess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
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;
}
那么到这,我们的猜数字小游戏就实现啦,虽然显得简单,但却体现了我们编写代码的逻辑和顺序
每个人的青春里都有一条弯路,谁也没法替你走完,但未来总还在。愿有人陪你颠沛流离,如果没有,愿你成为自己的太阳。 |