yo!这里是猜数字游戏

目录

前言

实现步骤

主函数

菜单

博弈 

     1.随机数字 

     2.猜 

完整代码


前言

       人机博弈大战-----猜数字,顾名思义,电脑随机给出一个数字(1-100),ta根据电脑的提示去猜这个数字,比如电脑给出56(当然,ta看不到),用户输入34,电脑提示猜小了,输入78,电脑提示猜大了,输入56,则猜对了。对,就是一个简单且有趣的小游戏,让我们来实现它吧。

实现步骤

  • 主函数

       ta可以一直循环往复玩此游戏,当ta不想玩时可以直接退出

int main()
{
	int input = 0;   
	do
	{
		menu();   //菜单部分
		printf("请输入:");
		scanf("%d", &input);    //ta根据菜单的提示进行选择
		switch (input)
		{
		case 1:
			game();    //博弈部分
			break;
		case 0:
			printf("退出成功\n");
			break;
		default:
			printf("输入错误\n");
			break;
		}
	} while (input);   //实现 输入1可以一直玩 的效果

	return 0;
}
  • 菜单

       读者可以根据自己的个性,或者对游戏的理解为游戏提供菜单界面,方便ta可以很快熟知此游戏的玩法以进入到游戏

void menu()
{
	printf("**************************\n");
	printf("猜**********数**********字\n");
	printf("*********1.start**********\n");
	printf("*********0.exit***********\n");
	printf("**************************\n");
}
  • 博弈 

     1.随机数字 

       通过rand,srand,time等函数实现给出1-100中任意一个数字

     2.猜 

       ta输入数字进行猜测,电脑根据ta输入的数字进行提示

void game()
{
	int guess = 0;
	//随机数字
	srand((unsigned int)time(NULL));  //time()是个时间戳函数,返回一个time_t,实际上是一个long类型
	                                  //而srand的参数需要一个unsigned int类型,强制类型转换即可
	//rand函数使用前必须加上srand函数,为保证随机性,srand函数放在了主函数中
	int ret = rand()%100+1;
	//猜
	while (1)
	{
		printf("请输入一个数:\n");
		scanf("%d", &guess);
		if (guess > ret)
			printf("猜大了\n");
		else if (guess < ret)
			printf("猜小了\n");
		else
		{
			printf("恭喜你,猜对啦\n");
			break;
		}
	}
}

ps:

1.rand函数

rand()会返回一个范围在0到RAND_MAX(至少是32767)之间的伪随机数(整数)。

使用rand函数之前需要引用srand函数

头文件:

函数原型:int rand(void)

2.srand函数

srand()用来设置rand()产生随机数时的随机数种子,即根据seed随机生成一个数,而此时若seed接受到一个时间戳时,可真正实现数字的随机性

头文件:

函数原型:void srand (usigned int seed)

3.time函数

返回一个时间戳(当前时间相较于计算机的起始时间的差值,单位是秒,如下图)

头文件:

函数原型:time_t time(time_t *t)

yo!这里是猜数字游戏_第1张图片

完整代码

#include 
#include 
#include 

void menu()
{
	printf("**************************\n");
	printf("猜**********数**********字\n");
	printf("*********1.start**********\n");
	printf("*********0.exit***********\n");
	printf("**************************\n");
}

void game()
{
	int guess = 0;
	//随机数字
	//rand函数使用前必须加上srand函数,为保证随机性,srand函数放在了主函数中
	int ret = rand()%100+1;
	//猜
	while (1)
	{
		printf("请输入一个数:\n");
		scanf("%d", &guess);
		if (guess > ret)
			printf("猜大了\n");
		else if (guess < ret)
			printf("猜小了\n");
		else
		{
			printf("恭喜你,猜对啦\n");
			break;
		}
	}
}

int main()
{
	int input = 0;   
	srand((unsigned int)time(NULL));  //time()是个时间戳函数,返回一个time_t,实际上是一个long类型
	                                  //而srand的参数需要一个unsigned int类型,强制类型转换即可
	do
	{
		menu();   //菜单部分
		printf("请输入:");
		scanf("%d", &input);    //ta根据菜单的提示进行选择
		switch (input)
		{
		case 1:
			game();    //博弈部分
			break;
		case 0:
			printf("退出成功\n");
			break;
		default:
			printf("输入错误\n");
			break;
		}
	} while (input);   //实现 输入1可以一直玩 的效果

	return 0;
}

测试 

yo!这里是猜数字游戏_第2张图片

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