作业:猜数字游戏

作业:猜数字游戏,第1张

作业:猜数字游戏

首先实现菜单,功能为选择1则开始游戏,选择0则退出游戏,选择其他则重新选择。 

#define _CRT_SECURE_NO_WARNINGS 1
#include
void menu()
{
	printf("****************************n");
	printf("*******1.play  0.exit*******n");
	printf("****************************n");

}
void test()
{
	int input = 0;
	do
	{
		menu();
		printf("请选择数字:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			Game();//需要测试菜单功能是否可用,Game稍后实现
			break;
		case 0:
			printf("退出成功n");
			break;
		default:
			printf("非法输入,请重新选择n");
			break;
		}
	} while (input);
}
int main()
{
    srand((unsigned)time(NULL));//下方有解释
	test();
	return 0;
}

然后是游戏中随机数生成,需要用到rand和srand,具体理解就是rand可以产生随机数,但是有规律可循,也就是伪随机数。这时用srand来随机设置起点,让rand产生真随机。可是起点也要是随机的才行。

也就是说想要一个随机数,必须先有一个随机数。那么就有人想到了用时间戳 ,srand((unsigned)time(NULL))就是利用时间戳产生随机起点的语句。

放在Game()中,由于需要进入游戏中才开始生成,所以当你生成多个随机数时,发现值的大小相近,所以,将上述语句置于test()中或main()中。

最后一个需要注意的点是,随机数生成的范围,控制在0到100,随机数除以100的余数可以得到。

void Game()
{
	//生成一个随机数
	//srand((unsigned)time(NULL));
	int ret = rand()%100;
	//printf("%dn", ret);此句用于测试
	int i = 0;
	while (1)
	{
		printf("请输入你要猜的数字:");
		scanf("%d", &i);
		if (i > ret)
		{
			printf("猜大了n");
		}
		else if (i < ret)
		{
			printf("猜小了n");
		}
		else
		{
			printf("真牛逼n");
			break;
		}
	}

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存