C语言小游戏——猜数字

猜数字游戏是一种简单而有趣的游戏,玩家需要根据提示猜出一个随机数。
在这里插入图片描述

//游戏菜单
void menu()
{
    
    
	printf("*********************\n");
	printf("*       1.play      *\n");
	printf("*       0.exit      *\n");
	printf("*********************\n");
}

这是一个使用C语言编写的函数,用于显示一个简单的游戏菜单,其中包含两个选项:“play"和"exit”。

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

这是一个C语言标准库函数的调用,用于生成随机数。在程序中调用该函数之前,必须先包含头文件 time.h 和 stdlib.h。

该函数的作用是为随机数生成器设置一个种子,以便生成不同的随机数序列。time(NULL) 返回当前时间的秒数,因此可以将其用作种子,以获得更随机的结果。

具体来说,srand() 函数需要传入一个 unsigned int 类型的参数作为种子。通常可以使用 time(NULL) 函数返回的时间值作为种子,因为每次程序运行时时间值都不同,从而生成的随机数也不同。因此,该函数通常在程序的开始处调用一次,以确保生成的随机数序列具有足够的随机性。

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

这是一个 C 语言中的 do-while 循环结构,用于实现一个简单的游戏菜单。以下是代码的解释:

首先,调用 menu() 函数显示游戏菜单。
然后,使用 printf() 函数提示用户选择,并使用 scanf() 函数从标准输入流中读取用户的选择,并将其存储在 input 变量中。
接着,使用 switch 语句根据用户的选择执行相应的操作。如果用户选择了 1,则调用 game() 函数开始游戏;如果用户选择了 0,则输出一条消息表示游戏已退出;否则输出一条错误消息并提示用户重新选择。
最后,使用 do-while 循环结构,重复执行上述步骤,直到用户选择了退出游戏(即 input 的值为 0)。
在循环的结尾,程序将退出游戏并结束运行。

void game()
{
    
    
	int ret = rand() % 100 + 1;
	int num = 0;
	/*printf("%d\n", ret);*/
	while (1)
	{
    
    
		printf("请猜数字:>");
		scanf("%d", &num);
		if (num < ret)
		{
    
    
			printf("猜小了\n");
		}
		else if (num > ret)
		{
    
    
			printf("猜大了\n");
		}
		else
		{
    
    
			printf("猜对了\n");
			break;
		}
	}
}

这是一个 C 语言函数,用于实现一个简单的猜数字游戏。以下是代码的解释:

首先,使用 rand() 函数生成一个 1~100 之间的随机整数,将其存储在 ret 变量中。
然后,使用 while 循环结构来实现游戏的核心逻辑。在每一轮循环中,使用 printf() 函数提示用户输入猜测的数字,并使用 scanf() 函数从标准输入流中读取用户的输入,并将其存储在 num 变量中。
接着,使用 if-else 结构判断用户的猜测与随机数 ret 的大小关系,并输出相应的提示信息。如果猜测的数字比随机数小,则提示用户猜小了;如果猜测的数字比随机数大,则提示用户猜大了;如果猜测的数字与随机数相等,则输出一条恭喜信息,并使用 break 语句跳出循环。
最后,使用 game() 函数结束,返回到主函数中。
该函数实现了一个简单的猜数字游戏,其中随机数的生成使用了 rand() 函数,循环结构和条件语句则实现了游戏的核心逻辑。

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

猜你喜欢

转载自blog.csdn.net/weixin_51799303/article/details/130760384