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

[C语言] 猜数字小游戏的实现

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

[C语言] 猜数字小游戏的实现

猜数字小游戏

要求为:做一个猜测一个1-100范围内的随机数字的小游戏

1.菜单制作

构建一个菜单的函数,到时候主函数直接使用就可以了

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

2.然后写主函数,主函数大体框架

运用一个do while循环函数,因为游戏结束了我希望还能够再来一把,所以用do while 函数,最后游戏结束了再判断是否再次进行游戏

一开始的菜单也给与一个开始游戏的选项,使用一个switch分支来处理第一次输入的值,这个时候除了输入1和0以外,输入别的数字,也会再次返回到开头让我们再次选择是否进行游戏

在输入1的时候引入了一个game函数,这个函数我还没有定义,只是提前先放进去

int main()
{
	int begin = 0;
	do
	{
		menu();//打印菜单
		printf("请选择是否开始游戏:>");
		scanf("%d", &begin);
		switch (begin)
		{
		case 1:
			printf("请输入1-100数字:>");
			game();
			break;
		case 0:
			printf("退出游戏n");
			break;
		default:
			printf("输入错误请重新输入n");
			break;
		}
	} while (begin);
	return 0;
}

3.定义game函数

game函数就是游戏的主体,这个游戏我分为两个部分:1.生成一个1-100的随机数 2.把我们输入的数字跟那个随机数进行比较

(我这里为了限制数字在1-100的范围,采用了%100 + 1的式子,不局限与这个范围,可以想设置多大就设置多大)

void game()//猜数字游戏
{
	//1.生成随机数
	srand((unsigned int)time(NULL));
	int r = rand()%100 + 1;//%100 = 0-99 + 1 =1-100
	//printf("%dn", r);  测试随机数用的
}

先创建一个随机数,我用的方法就是拿时间戳和c语言自带的一个随机数来创建的,这里测试发现数字随机,但是不完全随机,生成的数字之间差距比较小,我就把

	srand((unsigned int)time(NULL));

这个初始化的表达式放在了主函数第一行,就好了

生成1-100的随机数解决了就解决第二个问题:接受一个键盘输入的数字跟这个随机数进行比较并给予回馈

void game()//猜数字游戏
{
	//1.生成随机数
	int r = rand()%100 + 1;//%100 = 0-99 + 1 =1-100
	//printf("%dn", r);  测试随机数用的
	//2.输入数字去比较
	while (1)
	{
		int num = 0;
		scanf("%d", &num);
		if (num < r)
		{
			printf("小了,再猜:>");
		}
		else if (num > r)
		{
			printf("大了,再猜:>");
		}
		else
		{
			printf("恭喜你,猜对了n");
			break;
		}
	}
}

因为这个游戏只要不猜对就不会结束,所以让while一直循环,直到猜对了跳出循环

挺简单的一个小游戏,就是实现随机数有点麻烦

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

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

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