C语言实现简单猜数字游戏(1-100)

实现代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
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语句来达到分支选择的效果,玩家可以选择玩游戏或者退出游戏.

C语言实现简单猜数字游戏(1-100)_第1张图片

 分别封装menu和game函数,将menu菜单函数放在do while循环里来实现每次游戏前都会出现游戏菜单,将game函数放置在case 1分支里来实现选择游戏后的效果.

C语言实现简单猜数字游戏(1-100)_第2张图片

 在输入1选择游戏后就会生成一个随机值用局部变量x来接受,此时同样也会有一个局部变量guess等待玩家输入赋值,通过玩家输入赋值与x进行比较不同的结果对应不同的反应.

C语言实现简单猜数字游戏(1-100)_第3张图片

 游戏效果图如下:C语言实现简单猜数字游戏(1-100)_第4张图片

 结尾:本次分享到此结束,欢迎大家互相交流学习,共同进步!

你可能感兴趣的:(以C语言实现的简单应用场景,游戏,c语言)