使用C语言编写的基于1-100数字的简易猜数游戏
最编程
2024-08-14 17:57:00
...
实现代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("***********************************\n");
printf("*********1.play 0.exit **********\n");
printf("***********************************\n");
printf("请输入数字\n");
}
void game()
{
printf("游戏开始\n");
int x = rand() % 100 + 1;
int guess = 0;
while (1)
{
scanf("%d", &guess);
if (guess > x)
printf("猜大了\n");
else if (guess < x)
printf("猜小了\n");
else
{
printf("恭喜你猜对了!\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int ret = 0;
do {
menu();
scanf("%d", &ret);
switch (ret)
{
case 1:
game();
break;
case 0:
printf("游戏结束");
break;
default:
printf("发生错误,请重新输入");
break;
}
} while (ret);
return 0;
}
随机数的产生:
猜字谜游戏最精髓的地方就在于数字随机,但如何实现数字随街呢?随机意味着数字在不停的变动,而什么东西是在一直变动的呢?不难想到,时间就是一直在变动的事物,因此要产生随机数需要借助rand,srand和time函数,前两个函数在stdlib.h头文件中,time函数在time.h头文件中.
如何用rand和srand函数实现随机数的产生:
首先第一步:rand函数在生产随机数之前,要使用srand函数设置随机数的生成器,如图,调用srand函数并给出一个随机数的种子,使用了time函数得到了时间戳,时间戳在强制转换类型后就成为了srand函数的一个种子,随后再调用rand函数就可得出随机数字.
由于随机数的范围限制在1到100,因此,使用rand函数得出随机值后模100再加一就得到了在1到100之间范围的数字.
总体逻辑:
使用do while循环来达到多次游戏的实现,在do while内设置switch语句来达到分支选择的效果,玩家可以选择玩游戏或者退出游戏.
分别封装menu和game函数,将menu菜单函数放在do while循环里来实现每次游戏前都会出现游戏菜单,将game函数放置在case 1分支里来实现选择游戏后的效果.
在输入1选择游戏后就会生成一个随机值用局部变量x来接受,此时同样也会有一个局部变量guess等待玩家输入赋值,通过玩家输入赋值与x进行比较不同的结果对应不同的反应.
游戏效果图如下:
结尾:本次分享到此结束,欢迎大家互相交流学习,共同进步!
上一篇: C语言中的数字猜猜乐
下一篇: C语言下的汉诺塔问题解决方案