C语言编-------------简单猜数字游戏实现

目录


前言

该怎样实猜数字游戏,接下来跟着我一步一步来看


一、菜单

我们居然是猜数字游戏肯定菜单是少不了的,具体怎样实现,来,看过来,不用过多的东西,我们用一个函数来实现

代码如下

void mevc()
{
	printf("********************\n");
	printf("****** 1.play ******\n");
	printf("****** 0.quit ******\n");
	printf("********************\n");
}

这里是直接打印菜单在屏幕上所以不用返回值

玩家想玩游戏就选择1,不想玩就选择0

二、选择

玩家可以根据自已来选择,所以需要用scanf让玩家输入,然后根据输出的值进入下一步

代码如下:

int main()
{
	mevc();
	do 
	{
		printf("请选择游戏->");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			play();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,继续!!\n");
			break;
		}
	} while (input);

	return 0;
}

这里有多种选择,所以用switch()语句来实现,知道玩游戏登进,都会有一次选择,想玩或者不玩直接退出,所以do-while语句来实现

三.猜数字

接下来是主要实现猜数字游戏,这里我们定义一个函数来实现猜数字的代码play()函数,选择1我们就进入猜游戏中,既然是猜数字,那就要随机产生一个数字供玩家猜测,这里涉及了一个函数rand(),该函数可以随机产生一个数字,它返回是一个整型0-32767的数字

代码如下(示例):

void play()
{
	int a = 0;
	int ret = rand() % 100 + 1;  //因为这里要实现1-100的随机数,所以%100-1就是1-100的数
	while (1)
	{
		printf("请猜数字->");
		scanf("%d",&a);
		if (a<ret)
		{
			printf("猜小了,继续\n");
		}
		else if (a>ret)
		{
			printf("猜大了,继续\n");
		}
		else
		{
			printf("恭喜你,猜对了\n");  
			break;    //猜对我们就跳出,重新选择,break跳出整个循环
		}
	}
}

这里我们有人经常范的错误就是把int ret = rand() % 100 + 1放在while循环里,这样的话每次猜数字都在变,就很难猜的对数字,要放外面

注意

这里用随机数要用到这个

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

经过测试会发现,无论怎么产生随机数,再来玩一次总是重复这几个数字,所以需要在rand前引用srand函数,但是srand函数又需要一个随机值才能让rand生成随机值这时可以用时间戳来实现;至于时间戳,不懂得可以百度一下,它产生的数字是随着时间在变化

四.全部代码如下

//实现猜1-100的数字游戏
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
//菜单
void mevc()
{
	printf("********************\n");
	printf("****** 1.play ******\n");
	printf("****** 0.quit ******\n");
	printf("********************\n");
}
//猜数字
void play()
{
	int a = 0;
	int ret = rand() % 100 + 1; //产生一个1-100的数字
        //判断
	while (1)
	{
		printf("请猜数字->");
		scanf("%d",&a);
		if (a<ret)
		{
			printf("猜小了,继续\n");
		}
		else if (a>ret)
		{
			printf("猜大了,继续\n");
		}
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}
int main()
{
	mevc();
	int input = 0;
	srand((unsigned int)time(NULL));  //时间戳
	do 
	{
		printf("请选择游戏->");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			play();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,继续!!\n");
			break;
		}
	} while (input);

	return 0;
}

好了,就先到这,有兴趣自己去玩下哈哈,如有什么建议下面评论哦,以上内容那里不懂也可以在下面评论,如有那里有错多多包涵和指出,再见了大家!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值