猜数字小游戏的实现(循环、分支语句的初级综合应用)

 一、游戏函数主体的实现:

#include
#include
#include

//程序在正式运行之前就应该有一个主菜单供玩家选择,无返回类型
void menu()
{
	printf("*********************************\n");
	printf("******     1/go on         ******\n");
	printf("******     0/quit          ******\n");
	printf("*********************************\n");
}


//创建游戏逻辑函数
void game()
{
	int input = 0;
	int rand_num = rand() % 100 + 1;  //这个步骤主要是为了给所产生的随机数限制生成范围在1到100之间
	while (1)  //因为只要选择1确定进入游戏以后,游戏就必然执行,所以不需要判断条件,一直为真
	{
		printf("Please input the guessed number\n");
		scanf("%d", &input);
		if (input > rand_num)
			printf("the guessed munber is bigger\n");
		else if (input < rand_num)
			printf("the guessed number is smaller\n");
		else
			printf("well done\n");


	}

}

//游戏主函数,
int main()
{
	int input = 0;
	srand((unsigned)time(NULL));  //为了保证游戏每一次重新运行所输出的数字都是随机值,引入时间函数
	do
	{
		menu();
		printf("PleaseChoose:>");
		scanf("%d", &input);
		switch(input)
		{
		case 1:
			game();
		case 0:
			printf("GameOver\n");
			break;
		default:
			printf("Please choose 1 or 0\n");

		}
	} while (input); //do while语句保证了menu函数直接执行一次

	return 0;
}

二、游戏的运行界面:

猜数字小游戏的实现(循环、分支语句的初级综合应用)_第1张图片

 三、游戏设计的具体逻辑:

为了更加生动形象的理解,具体逻辑都以注释形式穿插在代码中。主要是一个初级综合应用,用到scanf(输入值)、printf(生成菜单界面,输出界面)、time(时间函数)、srand(随机值函数)等库函数,自定义函数menu(菜单界面)、game(游戏逻辑主体)。对于新手来说,比较难理解在于srand、time综合应用,由于srand产生的随机值在操作系统重新启动之后会置0,导致每一次重新启动的数组相同,故需要引入无符号时间函数(已被换算成一个自动增量)来提高游戏可玩性。

你可能感兴趣的:(c语言学习历程,c语言,c++,算法)