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

C语言——猜数字游戏

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

C语言——猜数字游戏

目录
  • 问题解决
  • 一、搭建菜单栏
    • 1.自定义menu函数
    • 2.在主函数中创建选项
  • 二、游戏模块的实现
    • 1.生成随机数
    • 2.自定义game函数
  • 总结


问题解决

使用电脑生成1—100之间的数字,玩家轮流猜测(不限人数),如果猜错,会有提示。

一、搭建菜单栏 1.自定义menu函数

代码如下:

void menu()
{
	printf("******************************************************n");
	printf("******************************************************n");
	printf("***********   1. 玩游戏     0. 退出游戏    ***********n");
	printf("******************************************************n");
	printf("******************************************************n");
}
2.在主函数中创建选项

使用switch语句进行功能的选择:
选择1,开始游戏;选择0,退出游戏。
使用do-while语句来实现多次进行游戏,也就是说一次游戏结束后会再次选择是退出游戏还是继续游戏。

而do-while中的判断条件input很好的解决了这个问题。

如果选择1或其他的非零数,条件为真,就会继续循环;如果输入0,条件为假,结束循环。
代码如下:

do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		printf("n");
		switch (input)
		{
		case 1:
		
			break;
		case 0:
			printf("退出游戏n");
			break;
		default:
			printf("选择错误,请重新选择n");
			break;
		}
	} while (input);
二、游戏模块的实现 1.生成随机数

使用rand函数生成随机数。
rand函数和srand函数详解:

int ret;
ret=rand()%100+1;
2.自定义game函数

代码如下:

void game()
{
	int ret;
	int guess;//接受猜的数字
	ret = rand()%100+1;//生成随机数在0——32767之间,%100后在0——99
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &guess);
		printf("n");
		if (guess > ret)
		{
			printf("不好意思,你猜大了!(-_-)n");
			printf("n");
		}
		else
			if(guess
				printf("不好意思,你猜小了!(-_-)n");
				printf("n");
			}
			else
			{
				printf("恭喜你,猜对了!!!n");
				printf("n");
				break;
			}
	}
总结

猜数字小游戏最核心的就是随机数的生成,掌握这一点就能很好的完成任务了。
完整代码如下:

#include
#include
#include
void menu()
{
	printf("******************************************************n");
	printf("******************************************************n");
	printf("***********   1. 玩游戏     0. 退出游戏    ***********n");
	printf("******************************************************n");
	printf("******************************************************n");
}
void game()
{
	//1.生成随机数
	int ret;
	int guess;//接受猜的数字
	ret = rand()%100+1;//生成随机数在0——32767之间,%100后在0——99之间	            
	//2.猜数字
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &guess);
		printf("n");
		if (guess > ret)
		{
			printf("不好意思,你猜大了!(-_-)n");
			printf("n");
		}
		else
			if(guess
				printf("不好意思,你猜小了!(-_-)n");
				printf("n");
			}
			else
			{
				printf("恭喜你,猜对了!!!n");
				printf("n");
				break;
			}
	}
}
int main()
{
	int input;
	srand((unsigned int)time(NULL));//拿时间戳来设置随机数
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		printf("n");
		switch (input)
		{
		case 1:
			game();//玩游戏的过程
			break;
		case 0:
			printf("退出游戏n");
			break;
		default:
			printf("选择错误n");
			break;
		}
	} while (input);
	 return 0;
}

测试样例:

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

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

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