《魔兽世界》随机生成一个1~100的数字分析

《魔兽世界》随机生成一个1~100的数字分析

游戏内容: 随机生成一个1到100的数字数字游戏设计,让玩家猜,当玩家猜错时创作人,会提示是大还是小。

首先,我们来分析一下内容。

1.我们需要随机生成一个1-100的数据供玩家猜测

于是我们可以想到用rand()函数来练习

ret = rand() % 100 +1;

但是如果你多次实验,你会发现每次重新运行程序后给出的随机数都是一样的。 这样的随机性是重复的,达不到播放的效果数字游戏设计,所以我们需要引入一个srand()函数作为setter。

srand((int)time(NULL));

同时需要在开头引入这两个函数的头文件

#include
#include

2.构造循环

既然是猜数游戏,当然不会让玩家只输入一次数据游戏素材下载 免费,所以我们需要一个循环让玩家可以输入多次。 同时,也需要给予玩家提示,减少玩家失误的次数。

	while(1)
	{
		printf("请输入您猜的数字\n"); 
		scanf("%d",&guess);
		
		if( ret < guess)
		{
			printf("您猜的数字偏大\n"); 
		}
		else if( ret > guess)
		{
			printf("您猜的数字偏小\n"); 
		} 
		else
		{
			printf("恭喜您猜对了\n");
			break; 
		} 
	} 

我们需要一个菜单​​让玩家选择是进入游戏还是退出游戏。 很容易想到使用switch()函数,同时可以放在一个循环中让玩家多次进入,因为这个循环至少运行一次。 ,所以我们可以使用do while()循环来实现

	do
	{
		menu();
		printf("请输入您的选择:\n");
		scanf("%d",&n);
		
		switch(n)
		{
			case 1:	
				game();
				break;
			case 0: 
				printf("结束游戏\n");
				break;
			default:
				printf("输入错误,请重新输入\n"); 
				break; 
		} 
		
	} while (n);

在这里插入图片描述

完整代码

#include
#include
#include
void menu()
{
	printf("*****************************************\n") ;
	printf("*********      1.开始游戏       *********\n") ;
	printf("*********      0.结束游戏       *********\n") ;
	printf("*****************************************\n") ;
}
void game()
{
	int ret,guess; 
	ret = rand() % 100 +1;
	
	while(1)
	{
		printf("请输入您猜的数字\n"); 
		scanf("%d",&guess);
		
		if( ret < guess)
		{
			printf("您猜的数字偏大\n"); 
		}
		else if( ret > guess)
		{
			printf("您猜的数字偏小\n"); 
		} 
		else
		{
			printf("恭喜您猜对了\n");
			break; 
		} 
	} 
} 
int main()
{ 
	int n;
	srand((int)time(NULL)); 
	do
	{
		menu();
		printf("请输入您的选择:\n");
		scanf("%d",&n);
		
		switch(n)
		{
			case 1:	
				game();
				break;
			case 0: 
				printf("结束游戏\n");
				break;
			default:
				printf("输入错误,请重新输入\n"); 
				break; 
		} 
		
	} while (n);
	
	return 0;
}