C语言猜数字游戏

如何实现一个猜数字游戏

         用分支循环实现猜数字游戏。稍微涉及一点点函数,但不多只会出现两次,第一次是刚开始出现的,最后一次会显示全部的代码

         实现一个1-100的猜数字游戏;

        写一个代码,首先要知道,需求是什么根据。需求进行写代码。比如猜数字游戏,首先我们明白,要写一个1-100猜数字的游戏。

        首先不管三七二十一先给main函数写出来

#include<stdio.h>
int main
{
	return 0;
}

        写完之后我们要告诉用户,这是个游戏。让用户知道自己玩的是什么游戏,游戏也要有界面,我们告诉用户这是猜数字游戏。

void menu()  //游戏显示页面
{
	printf("************************\n");
	printf("*******猜数字游戏*******\n");
	printf("******* 1 play  ********\n");
	printf("******* 0 exit  ********\n");
	printf("************************\n");
}

#include<stdio.h>
int main()
{
	menu();  //游戏显示界面	
	return 0;
}

        当我们拥有界面之后,我们要进入游戏,按 1 开始游戏 按 0 结束游戏,但是如果有人按其他的呢,那要告诉它了。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int input = 0;
	menu();  //游戏显示界面
	printf("请选择:>>>");
	scanf("%d", &input);
	switch (input)
	{
	case 1://玩游戏
		
		break;
	case 0:
		printf("退出游戏");
		break;
	default:
		printf("请输入 1 或 0 ");
		break;
	}

	return 0;
}

         如果他不小心输入错了,我们还要让他返回来继续执行。怎么办? 用什么方法实现呢?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int input = 0;
	menu();  //游戏显示界面
	do
	{
		printf("请选择:>>>");
		scanf("%d", &input);
		printf("\n");
		switch (input)
		{
		case 1://玩游戏
		
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("请输入 1 或 0 \n");
			menu();
			break;
		}
	} while (input);
	return 0;
}

        这样当输入其他数的时候就会提醒,我们发现,上个代码加上do while 后确实,实现了我们想要的东西,但是界面是是连在一起的看着非常难受,为了看着不那么难受我们在scanf 后进行了换行,同时为了提醒输出之后重新输,我们在default后面加入了 menu函数。

        这个基本的游戏界面就实现了。下面就是进入游戏,我们在 case 1 后进入游戏,1 -100的猜数字游戏,电脑随机出一个数,你去猜,猜打了要告诉你 ,猜小了,也要告诉你,赢了,输了都要告诉你,真正数是什么也要告诉你,才几次输呢等

        我们在 case 1 里面实现,这时候我们要创建一个函数 比如说创建一个函数 play函数 ,在里面进行游戏规则的制定

 void play() //进入游戏之后
{
	
	int a =  rand() % (100 + 1);//首先实现 1-100的随机数
	int guess = 0;  //用户输入的数字
	int count = 6;
		printf("     猜数字游戏     \n"); //提示
		printf("   请输入您的数字    \n"); 
		printf(" 数字的范围1-100之间    \n    ");
		//scanf("%d", &guess); 这两个代码不能写外面否则if只会判断一次然后死循环打印
		while (count) //由于不可能一次就判断就能判断对所以需要循环。
                      //游戏要有输赢,为了增加一些难度我们设置6次机会
		{
			printf("您有%d次机会\n         ", count); //提醒用户还有几次机会
			scanf("%d", &guess);  //用户输入猜测的数字
			if (guess < a)  //进行判断
			{
				printf("     猜小了\n     ");
			}
			else if (guess > a)
			{
				printf("     猜大了\n     ");
			}
			else
			{
				printf("恭喜您,猜对了\n");
				printf("正确数字是:%d", a);
				break;
			}
			count--;//每判断一次就减少一次机会
		}
		if (count == 0) //用户输了之后
		{
			printf("很遗憾您输掉了比赛\n");
			printf("正确数字是:%d\n", a); //让用户输的明白
		}
}

        至此我们关于随机数生成游戏的代码基本完成。下面是所有的代码

//猜数字游戏
// 游戏显示界面
//游戏内容界面
// 游戏规则的制定:
// 产生一个1-100的随机数进行猜大小
//产生一个限制条件
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>

void menu()  //游戏显示页面
{
	printf("************************\n");
	printf("*******猜数字游戏*******\n");
	printf("******* 1 play  ********\n");
	printf("******* 0 exit  ********\n");
	printf("************************\n");
}

 void play() //进入游戏之后
{
	
	int a =  rand() % (100 + 1);//首先实现 1-100的随机数
	int guess = 0;  //用户输入的数字
	int count = 6;
		printf("     猜数字游戏     \n"); //提示
		printf("   请输入您的数字    \n"); 
		printf(" 数字的范围1-100之间    \n    ");
		//scanf("%d", &guess); 这两个代码不能写外面否则if只会判断一次然后死循环打印
		while (count) //由于不可能一次就判断就能判断对所以需要循环。
                      //游戏要有输赢,为了增加一些难度我们设置6次机会
		{
			printf("您有%d次机会\n         ", count); //提醒用户还有几次机会
			scanf("%d", &guess);  //用户输入猜测的数字
			if (guess < a)  //进行判断
			{
				printf("     猜小了\n     ");
			}
			else if (guess > a)
			{
				printf("     猜大了\n     ");
			}
			else
			{
				printf("恭喜您,猜对了\n");
				printf("正确数字是:%d", a);
				break;
			}
			count--;//每判断一次就减少一次机会
		}
		if (count == 0) //用户输了之后
		{
			printf("很遗憾您输掉了比赛\n");
			printf("正确数字是:%d\n", a); //让用户输的明白
		}
}


int main()
{
	int input = 0;
	srand((unsigned int)time(NULL)); //生成一个随机数
	do
	{
		menu();  //游戏显示界面
		printf("请选择:>>>");
		scanf("%d", &input);
		printf("\n");
		switch (input)
		{
		case 1://玩游戏
			play(); //进入游戏之后
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("请输入 1 或 0 \n");
			menu();
			break;
		}
	} while (input);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值