猜数字游戏(保姆式教程)

目录

🤞 1)生成菜单

 🤞2)玩家选择玩游戏与不玩游戏

 🤞3) 猜数字游戏核心实现

🤞 4)玩家猜数字


💕创作不易,先赞后看养成习惯

哈哈哈哈哈哈

 

 1)生成菜单

玩这个游戏,菜单里无非包含两个选择 :一.就是玩游戏;二.就是不玩游戏。 而且如果我想玩多把就要运用循环,既然有循环就要想到终止,我们知道非0为真,0为假,所以不如我们选择1和0来做我们的玩与不玩的条件,这样后面会方便很多,kakaka 不管三七二十一,我们都要先来一次选择的菜单来吧,代码如下:

void menu()
{
	printf("******************************\n");
	printf("*********   1.play   *********\n");  //选择1 玩游戏
	printf("*********   0.exit   *********\n");  //选择0 退出游戏
	printf("******************************\n");
}

打印完菜单我们肯定要调用到循环里,代码如下:

int main()
{
	do
	{
		menu();    //调用菜单,由于不管怎样选择都要至少用到一次菜单,所以用do while

	} while ();
	return 0;
}

打印完菜单之后我们就要选择玩与不玩对不对?

2)玩家选择玩游戏与不玩游戏

根据菜单的提示,我们选择玩游戏和不玩游戏,都要输入一个数字来判断玩或者不玩,所以我们就来定义一个变量input,代码如下:

int main()
{
	int input = 0;
	
	do
	{
		menu();

		printf("请选择>(0/1):");

		scanf("%d", &input);   //要玩多次所以放在循环里

	} while (input);
	return 0;
}

我们输入了,肯定就要来接受从而判断玩与不玩,两个选择,我们用 switchcase 分支语句去选择,选择1 就进行猜数字游戏,0就退出嘛,选择其它的,我们就报一个选择错误重新选择,代码如下:

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择>(0/1):");
		scanf("%d", &input);
		switch (input)
		{
		case 1 :
		    game();
			break;
		case 0 :
			printf("退出游戏\n");
			break;
		default :
			printf("选择错误,请重新选择\n");
		}
	} while (input);  //循环条件也是input 输入0 就退出循环了
	return 0;
}

3) 猜数字游戏核心实现

首先为了玩猜数字我们要先让电脑生成一个随机数字,随机数字的生成要运用到函数 rand() 我们来看一下这个函数的返回类型和原型

 

上面说调用函数rand() 前必须再调用 srand()  接下来我又把这个函数的原型和返回类型给大家看

 

 srand()里需要一个一直改变的数,这我们怎么办呢,在生活中存在一直改变的数就是时间了,所以不妨我们用时间来满足我们的条件(引用一个time的函数实现)看代码:

 time()函数 它的返回类型是整型,由于不需要用到它的任何操作,就将NULL放在time里

void game()
{
    srand((unsigned int)time(NULL));
	int ret = rand() % 100 +1;  //我们假设猜1-100的数字
}

4)玩家猜数字

玩家猜数字,首先我们需要输入一个数字,来判断我们与电脑生成的数字作比较,如果大于电脑的我们就提示说 “猜大了”,小于电脑的提示 “猜小了”,在我们猜的过程中一般不能是一次就猜对了,所以我们这里要多次输入并判断,因此这些要放在循环当中,猜对了就跳出循环,代码如下:

void game()
{
	int ret = rand() % 100 +1;
	int guess = 0;
	while (1)
	{
		printf("\n请输入你要猜的数字:");
		scanf("%d", &guess);
		if (guess < ret)
		{
			printf("\n猜小了\n");
		}
		else if (guess > ret)
		{
			printf("\n猜大了\n");
		}
		else
		{
			printf("\n恭喜你,猜对了\n");   //如果猜对就跳出循环
			break;
		}
	}
}

以上就是全部的分解代码,以下是全部代码:特别要注意我们生成随机数并不一次游戏只需生成一次所以我们将srand()函数放在我们的主函数里面

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
	printf("*****************************\n");
	printf("*********   1.play   ********\n");
	printf("*********   0.exit   ********\n");
	printf("*****************************\n");
}
void game()
{
	int ret = rand() % 100 +1;
	int guess = 0;
	while (1)
	{
		printf("\n请输入你要猜的数字:");
		scanf("%d", &guess);
		if (guess < ret)
		{
			printf("\n猜小了\n");
		}
		else if (guess > ret)
		{
			printf("\n猜大了\n");
		}
		else
		{
			printf("\n恭喜你,猜对了\n");
			break;
		}
	}
}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择>(0/1):");
		scanf("%d", &input);
		switch (input)
		{
		case 1 :
		    game();
			break;
		case 0 :
			printf("退出游戏\n");
			break;
		default :
			printf("选择错误,请重新选择\n");
		}
	} while (input);
	return 0;
}

  

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值