猜数字游戏( 主要总结分支与循环的内容)

本次猜数字游戏的规则就是在1-100生成一个 随机数,玩家可输入数字进行猜测,若所猜数字比随机数小,则会提示;”猜小了“,反之一样。

我们拿到题目不妨带入玩家的身份,当进入游戏时,自然而然就要先有一个菜单,因此此处我们可以用do while循环,当输入某个值时可进入游戏,输入某个值时我们就可以退出游戏。如下列代码。

int main()//制作一个猜数字游戏的思路(涵盖循环与分支的内容)
{
	
	do
	{

	}while
}

既然我们要进入菜单,便可以再设定一个函数如下列代码

​
​
​
void menu()
{
	printf("************************");
	printf("***  1.开始游戏    *****");
	printf("***  0.退出游戏    *****");
	printf("************************");
}


int main()//制作一个猜数字游戏的思路(涵盖循环与分支的内容)
{
	int sign_1 = 1;
	do
	{
		menu();
		scanf("%d",&sign_1);
		
	} while (sign_1);
	return 0;
}

​

​

​

这样我们就能得到一个菜单(menu中的*号仅仅为了修饰菜单,可自行调整。)

下面就是若是我们输入1就会进行游戏,输入0就会退出游戏,输入其他值肯定就不可以,需要重新输入,若是我们使用  if(sign_1 == 1) 和 if(sign_1 == 0)进行分支时,我们没有办法对其他的输入值进行约束(这里后期发现其实都可以,可自行选择)因此我们可以选择switch来进行分支,如下列代码所示

​
​
void menu()
{
	printf("************************");
	printf("***  1.开始游戏    *****");
	printf("***  0.退出游戏    *****");
	printf("************************");
}


int main()//制作一个猜数字游戏的思路(涵盖循环与分支的内容)
{
	int sign_1 = 1;
	do
	{
		menu();
		scanf("%d",&sign_1);
		switch (sign_1)
		{
		     case 1:game_1();
			 case 0: break;
			 default:printf("输入错误,请重新输入\n");
		}
		
	} while (sign_1);
	return 0;
}

​

​

至此我们的菜单制作已完成,可以看到图中引入了一个game_1,所以这里我们又需要再命名一个game_1的函数

void game_1()
{
	int ret = rand() % 100 + 1;//引出随机数
	int count_1 = 0;
	printf("请输入您所猜测的数字:\n");
	
	

}

既然要生成随机,那就要用到rand函数,此处在我的这一篇文章有相关说明(写文章-CSDN创作中心)就不多赘述。代码到这里就需要我们进行下一步的考虑,如题”若所猜数字比随机数小,则会提示;”猜小了“,反之一样。“因此我们需要引入count_1来与ret这个随机数进行比较,输出对应的提示。那让我们进入下一步的代码:

void game_1()
{
	int ret = rand() % 100 + 1;//引出随机数
	int count_1 = 0;
	printf("请输入您所猜测的数字:\n");
	while (1)
	{
		scanf("%d", &count_1);
		if (count_1 > ret)
			printf("猜大了\n");
		else if (count_1 < ret)
			printf("猜小了\n");
		else
		{
			printf("恭喜您猜对了,随机数是%d\n", ret);
			break;
		}
	}
	

}

在这个地方我们的思路是,若没有猜对,则需要一直猜测,所以while后括号的参数是1,即若没有break则会一直循环,知道猜对(count_1 == ret)时加入break。

至此我们试运行下列总的代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu()
{
	printf("************************\n");
	printf("***  1.开始游戏    *****\n");
	printf("***  0.退出游戏    *****\n");
	printf("************************\n");
}

void game_1()
{
	int ret = rand() % 100 + 1;//引出随机数
	int count_1 = 0;
	printf("请输入您所猜测的数字:\n");
	while (1)
	{
		scanf("%d", &count_1);
		if (count_1 > ret)
			printf("猜大了\n");
		else if (count_1 < ret)
			printf("猜小了\n");
		else
		{
			printf("恭喜您猜对了,随机数是%d\n", ret);
			break;
		}
	}
	

}


int main()//制作一个猜数字游戏的思路(涵盖循环与分支的内容)
{
	int sign_1 = 1;
	srand(time(NULL));
	do
	{
		menu();
		scanf("%d",&sign_1);
		switch (sign_1)
		{
		     case 1:game_1();
			 case 0: break;
			 default:printf("输入错误,请重新输入\n");
		}
		
	} while (sign_1);
	return 0;
}

可以看到我们的简易版猜数字游戏就到此结束了,后续还有一个可选难度的猜数字游戏留到下一期再进行讲解。

  • 26
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值