C语言简易小游戏——猜数字

分享一句很喜欢的话:因为你的努力和摆烂都不够纯粹,所以痛苦。

 当你学完了while循环,do—while循环,if语句和switch语句的时候,来自己动手尝试实现一个小游戏吧。

一  实现思路

游戏吗,肯定时要有菜单的,所以第一步呢,我们可以先实现一个菜单。

void meun()
{
	printf("1.play 2.exit\n");
	printf("选择>");
}

 你看,菜单都有了,那不得先把大的框架构造好吗?这个时候,可以用switch语句,把play,exit和输入的不是菜单上的数字的情况实现一下吧。

	int input;
	meun();
	scanf("%d", &input);
	switch (input)
	{
		case 1://开始游戏
			break;
		case 2://退出游戏
			break;
		default:
			break;
		}
	return 0;

好了,这就是一个框架,下一步,我们来实现游戏内容。猜测的数字大的话,输出太大了,小的话,输出太小了。

void play()
{
	int guess;
	while (1)
	{
		printf("请输入数字\n");
		scanf("%d", &guess);
		if (guess > ret)//这个ret没有定义,不要急
		{
			printf("太大了\n");
		}
		else if (guess < ret)
		{
			printf("太小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
	}
}

光有猜测的数字可没法玩啊,你需要让系统生成一个随机数字,但是随机数的范围又有点大,因此我们可以用下面的这个代码来实现随机数的生成随机1~100的数字。

int ret = rand() % 100 + 1;

 想重复玩游戏怎么办呢?可以通过do—while循环来实现

int main()
{
	
	int input;
	do
	{

		meun();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			//play
			play();
			break;
		case 2:
			//退出
			break;
		default:
			printf("输入错误,请重新选择");
			break;
		}
	} while (input != 2);
	return 0;
}

二 完整代码

#include
#include
#include
#include
void meun()
{
	printf("1.play 2.exit\n");
	printf("选择>");
}
void play()
{
	 int ret = rand() % 100 + 1;
	 int guess;
	
	 while (1)
	 {
		 printf("请输入数字\n");
		 scanf("%d", &guess);
		 if (guess > ret)
		 {
			 printf("太大了\n");
		 }
		 else if (guess < ret)
		 {
			 printf("太小了\n");
		 }
		 else
		 {
			 printf("猜对了\n");
			 break;
		 }
	 }
}
int main()
{
	 srand((unsigned int)time(NULL));
	int input;
	do
	{

		meun();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			//play
			play();
			break;
		case 2:
			//退出
			break;
		default:
			printf("输入错误,请重新选择");
			break;
		}
	} while (input != 2);
	return 0;
}

 注:如果光用int ret = rand() % 100 + 1;这个,你会发现,每次的随机数都是相同的,并不能达到游戏效果,可以利用时间戳,C语言中,time函数会返回时间戳,可以用srand((unsigned int)time(NULL));来实现。

 大家可以自己动手尝试一下哦!!!!

你可能感兴趣的:(C语言,c语言)