C语言实现猜数字游戏

Posted Xua3055

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言实现猜数字游戏相关的知识,希望对你有一定的参考价值。

开始之前先推荐一篇博客: 

C语言:素数求解的N种境界_碧瑶的博客呀-CSDN博客_素数求解的n种境界

然后开始今天的重头戏:猜数字游戏。

今天需要用到两个void函数,一个主函数。

我们先写一个菜单

void main()
{
printf("按下1开始游戏\\n");
printf("按下2退出游戏\\n");
}

这就完成了一个简易菜单的设置,主函数中我们直接调用就行了。

紧接着我们写主函数

#include<stdio.h>
int main()
{

int input = 0;//定义输入数

do
{
    menu()//引用菜单,注意菜单要写在循环的内部这样每次循环才会重新调用菜单

    printf("请选择");
    scanf("%d",&input);
    switch(input)
    {  
      case 1://这里的1和0其实是菜单中说的1和0
            printf("选择正确");
            break;
      case 0:
            printf("选择错误");
            break;
      default:
            printf("输入错误");
            break;
    }
}while(input);//这里注意 do while 循环的书写方式

return 0;
}

 主程序的书写就完成了。

 之后我们还要在case 1 处引用一个game,来作为游戏的主要部分。

void game()
{
//首先我们要一个随机数,在C语言中如何产生随机数呢?我们可以用rand函数
int r = rand;

}

 打开MSDN,我们在这里看到rand使用之前还需要加一个srand来对它进行定义,怎么定义呢,直接srand加上括号就行了。

void game()
{
srand(1)
int r = rand;

}

可是这样会发现只有随着srand的变化,rand的值才会发生变化。如何将srand随机化呢?我们这里就要用到时间戳这一概念了。时间戳是当前时间与计算机起始时间之间的差值,我们在此引用时间戳。

void game()
{
srand(time(NULL))
int r = rand;

}

MSDN上面写道,time_t 说明这是一个指针,让其返回空值那么就可以输出一个数字。

类型转换后,代码变成

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

为了避免每一次都要重新同步时间戳,把这行代码放进主函数里面,这样子就可以让产生的数字真正随机。

之后的游戏部分就十分简单

int guess = 0;
	while (1)
	{
		printf("猜数字");
		scanf("%d", &guess);
		if (guess > r)
		{
			printf("大了\\n");
		}
		else if (guess < r)
		{
			printf("小了\\n");
		}
		else
		{
			printf("恭喜恭喜你猜中了 (*^▽^*) \\n");
			break;

 整个程序就完成了

#include<stdlib.h>
#include<time.h>

void menu()
{
		printf("按下 1 开始游戏       \\n");
		printf("按下 0 结束游戏      \\n");
}

void game()
{
	int r = rand() % 100 + 1;//rand max 为0-32767

	int guess = 0;
	while (1)
	{
		printf("猜数字");
		scanf("%d", &guess);
		if (guess > r)
		{
			printf("大了\\n");
		}
		else if (guess < r)
		{
			printf("小了\\n");
		}
		else
		{
			printf("恭喜恭喜你猜中了 (*^▽^*) \\n");
			break;
		}
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));

	do
	{
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
				break;
		case 0:
			printf("退出游戏");
				break;
		default:
			printf("选择错误");
				break;
		}
	} while (input);

	return 0;
}

以上是关于C语言实现猜数字游戏的主要内容,如果未能解决你的问题,请参考以下文章

喵呜:C语言实现猜数字游戏

C语言 猜数字游戏代码

Java猜数字游戏(附C语言)

c语言猜数字

c语言设计猜数字游戏

利用C语言写出简单的猜数字小游戏