栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

作业:猜数字游戏

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

作业:猜数字游戏

首先实现菜单,功能为选择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;
		}
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号