猜数字游戏集总C语言分支循环知识

前言

(声明一下,凡人小严初学C语言,概念性的内容就不细说啦,还是注重实践理解)

猜数字
规则:系统随机生成一个1~100的数字,玩家每次输入一个在此区间的数字,系统会自动判断您输入的输与随机数的大小。

要求一:做出规则界面,输入数字‘0’进入游戏菜单界面。
要求二:游戏菜单界面,输入数字‘1’开始游戏;输入数字‘2’进入模式选择;输入数字‘3’退出游戏。
要求三:模式选择分为两种,第一种无限输入次数,第二种自定义输入次数。
要求四:进入游戏后,需要添加输入数字‘999’强制退出游戏。
要求五:若玩家输入数字不在区间内,提示玩家。
要求六:尽可能多的提示玩家下一步操作

注意:以下分布只展示部分代码,均为截取,文章结尾为完整代码及注释。

第一步:int main()return 0 起步喽

首先,主函数,我们肯定要先完成要求一。利用printf函数打印出规则界面和下一步操作,再利用scanf函数储存输入数据。

int input = 0;

printf("******猜数字******\n");

printf("介绍:\n系统将随机生成一个1~100的数字,请输入一个在此区间的数字,系统会自动判断您输入的输与随机数的大小。\n");

printf("输入 0 进入菜单\n");

scanf("%d", &input);

第二步:做出菜单界面

这里,我们为了简化主函数,我们就可以简单地利用子函数。于是,我们引入子函数menu()打印菜单(之后的游戏程序也相同)。为了进入不同界面,这里,我们就可以利用Switch函数判断输入数据来完成。

void menu()

{
   

	printf("请输入对应序号进入\n");

	printf("******1.开始******\n");

	printf("****2.模式设置****\n");

	printf("******3.退出******\n");

}
switch (input)

{
   

case 0:
	menu();
	case 1:
	game();

case 2:

	printf("请输入模式序号\n");

	printf("11:无限输入次数(系统默认)\n");

	printf("22:自定义输入次数\n");

	scanf("%d", &flat);

	break;

case 3:

	printf("游戏已关闭\n");
	break;

default:

	printf("输入错误,请重新输入\n");

原本是想把模式界面也分隔出去,但不明确子函数menu()是否能创建多个,所以,就直接在case 2:下编写。

第三步:编写跳转语句

现在就涉及到一个问题了,打印完菜单以及选择完模式后,我们如何跳转回初始游戏菜单界面。这里,我选择使用goto语句,构建多个定义跳转点。

int main()

{
   

	int input = 0;

	printf("******猜数字******\n");

	printf("介绍:\n系统将随机生成一个1~100的数字,请输入一个在此区间的数字,系统会自动判断您输入的输与随机数的大小。\n");

	printf("输入 0 进入菜单\n");

again:
	scanf("%d", &input);

	switch (input)

	{
   

	case 0:

	agains:

		menu();
		goto again;

	case 1:
		game();
		goto agains;

	case 2:

		printf("请输入模式序号\n");

		printf("11:无限输入次数(系统默认)\n");

		printf("22:自定义输入次数\n");

		scanf("%d", &flat);

		goto agains;
		break;

	case 3:

		printf("游戏已关闭\n");
		break;

	default:

		printf("输入错误,请重新输入\n");
		goto again;

	}

	return 0;

}

到这里我们就完成了主函数的编写,完成了要求一和要求二。

第四步:编写game()

既然是猜数字游戏,那么,每一次的游戏开始,系统都要随机生成一个玩家无法预测的数字。这里,我们首先先引入rand()函数,随机生成数字。简单编一个(非猜数字内)。

#
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值