利用c语言写一个猜数字游戏(超级详细)

一、C 语言是一种通用的、面向过程式的计算机程序设计语言,学好C语言是非常重要的。

下面我们就来利用C语言来写出一个猜数字的小游戏吧!

        首先构造出这个游戏的框架,再根据这个框架一步一步的进行代码编写。好的现在正文开始。

1.首先呢,我们肯定得先打印出菜单吧。

2.然后我们再进行选择,选择是进行游戏呢,还是退出游戏呢,这就得用到循环啦。在循环中再进行switch语句进行分支选择。

3.在选择进行游戏界面之前,我们肯定得构造出游戏是如何实现以及进行。

4.进行游戏过后再继续进行选择,选择继续游戏还是退出游戏。

        好的,废话少说,上代码喽。

                                 speak is cheap,show my code!

#include
#include
#include
void game();
void game()
{
	printf("请输入数字\n");
	int s=rand()%100+1;          //%100的得出是0~99之间的数,加一范围就为1~100
	int input = 0;
	while (1)
	{
		scanf("%d", &input);
		if (s == input)
		{
		printf("猜对了!\n");
		break;
	}
		if(s > input)
	{
		printf("小了,继续猜\n");
	}
		if (s < input)
	{
			printf("大了,继续猜\n");
	}
	}
}
int main()
{
	srand((unsigned int)time(NULL));            //为rand创建新的初始值。
	printf("*******************************\n");
	printf("***1.开始游戏 **  0.退出游戏***\n");
    printf("*******************************\n");
    printf("*******************************\n");
	int input = 0;
	do
	{
		printf("请选择:\n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n;");
			break;
		default:
			printf("输入错误,重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

下面我主要介绍其中randsrand还有time这些函数。

要想实现这个小游戏,我们得保证生成随机数,但是如何生成随机数呢,计算机的时间是一直在变的,所以我们利用时间来生成随机数。(时间戳)Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

其中rand是表示生成随机数的,下面我们来看看有关rand的一些介绍吧。

利用c语言写一个猜数字游戏(超级详细)_第1张图片利用c语言写一个猜数字游戏(超级详细)_第2张图片

 

 通过此图我们可以看出对rand的一些介绍,其返回一个随机值,且其返回类型是一个int类型的,最大为32767。且该函数里面的参数可以不设定。调用rand函数时必须引用库stdlib

下面我们利用VS来实现用rand函数生成随机值。利用c语言写一个猜数字游戏(超级详细)_第3张图片

虽然在此次调试中确实生成了10个随机值,但是再关闭程序继续调试时,就会发现生成值仍然还是这些数,这显然不是我们想要的随机值。所以到底哪里出错了呢?这是因为rand函数的种子(初始值)未发生变化,所以我们只需要让rand的初始值发生变化,这样我们就可以得到真正的随机值了,要想是rand函数的初始值发生变化,这就不得不提及到srand函数啦。

下面是关于srand函数的一些信息。

 利用c语言写一个猜数字游戏(超级详细)_第4张图片

利用c语言写一个猜数字游戏(超级详细)_第5张图片

 

 可以看出srand函数返回类型是任意的,但是其参数必须是unsigned int 类型,其作用是为初始化随机赋值,改变了初始化的种子值,这样就可以实现rand函数完成绝对随机。

又因为计算机中时间是一直变化的,所以可以利用srand函数,让时间作为参数生成随机种子值,然后就能实现rand的绝对随机啦。

下面再来再来看看time函数的信息。

利用c语言写一个猜数字游戏(超级详细)_第6张图片

 

 利用c语言写一个猜数字游戏(超级详细)_第7张图片

 可见其函数参数为指针类型,可以为空,返回类型为time_t  time ,利用VS将其转换到定义如上图,本质上其是一个long long 类型。

所以可以利用srand((unsigned int )  time (NULL))生成随机种子(即随机初始值)将time强制转化为unsigned int ,再利用rand就可以实现绝对随机的啦。

         所以就有了这些代码    

 

以上就是C语言实现小游戏的代码。其中主要还是介绍srand,rand,time 函数的一些用法以及知识,其他逻辑都通俗易懂,若有其他哪些不懂可以随时在评论区提问。若发现问题请及时提出,定做出改正!

 

 

 

你可能感兴趣的:(游戏)