《C语言入门》猜数字小游戏代码实现

目录

1.基本原理

2.分块目标及代码实现

1.基本原理

我们让电脑生成一个1~100范围内的随机数,我们输入一个值,电脑给出反馈如:猜大了或猜小了。以便我们可以缩小猜数字的区间,来猜到最后的答案。

2.分块目标及代码实现

和本人其他博客中的小游戏一样,我们先打印一个菜单,再获取玩家输入的值并给出反馈,若输入1则进行游戏,若为0则退出游戏,我们这里不再赘述,代码如下:

int main()
{
	srand((unsigned int)time(NULL));
	int input = 0;
	do {
		menu();
		scanf("%d", &input);
		if (input == 1)
		{
			printf("进行游戏\n");
			printf("请输入数字\n");
			game();
		}
		else if (input == 0)
			printf("退出游戏");
		else
			printf("输入错误,请重新输入");

	} while (input);
	return 0;
}

我们使用do while语句来完成这一目标,do while可以很方便的在玩家输入之前就进行一次循环体打印出菜单。我们接下来主要讲述游戏具体的实现。首先我们需要电脑生成一个随机数,上述代码中的srand就是用来取一个随机种子,以至于我们每次进行的游戏电脑生成的随机数不同。但问题又来了,电脑生成的随机数是范围无限大的,而我们游戏中需要的是1~100的数字,我们使用生成的随机数模上100再加1,这样就得到了1~100之间的数字。生成了随机数之后,再将随机数与玩家输入的数相比较,再给出反馈。完整代码如下:

#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void menu()
{
	printf("***********************\n");
	printf("******  1.play   ******\n");
	printf("******  0.exit   ******\n");
	printf("***********************\n");

}
void game()
{
	int i = rand()%100+1;
	
	while (1)
	{
		int a = 0;
		scanf("%d", &a);
		if (a > i)
		printf("猜大了\n");
		if (a < i)
		printf("猜小了\n");
		if (a == i)
		{
			printf("猜对了,答案是%d\n", a);
			break;
		}
	}

}
int main()
{
	srand((unsigned int)time(NULL));
	int input = 0;
	do {
		menu();
		scanf("%d", &input);
		if (input == 1)
		{
			printf("进行游戏\n");
			printf("请输入数字\n");
			game();
		}
		else if (input == 0)
			printf("退出游戏");
		else
			printf("输入错误,请重新输入");

	} while (input);
	return 0;
}

感谢大家的阅读,欢迎大家点赞评论,互关互注,祝大家万事如意。

Guess you like

Origin blog.csdn.net/m0_60756071/article/details/121527951