浅浅谈谈猜数字游戏的制作

浅浅谈谈猜数字游戏的制作

首先明确游戏架构

  1. 菜单

  2. 游戏内容

接着考虑游戏

菜单如何搭建:

通过从键盘输入数字的方式来完成两种游戏模式的选择(开始游戏,退出游戏)

游戏内容如何搭建:

通过从键盘输入的数字与电脑函数生成的随机数进行比较,如果不相等,则给出大小提示,并让玩家接着猜

接着只需要完成上述的要求的进行程序的设计即可,其余有关游戏体验方面的改进在制作过程中进行优化。

接下来我们就开始了!!!

通过上述思路,不难发现,我们可以将菜单和游戏封装成两个不同的函数,通过函数的调用来实现游戏的运作。那么我们先写好主函数,并将两个函数的名称menugame也命名好。

int menu()
{//用来选择游戏模式

}

int game()
{//用来写游戏内容

}

int main()
{menu();return 0;

}

菜单的构建是比较容易的,可以通过自己的想法构建,这里,我通过do....while()循环来实现。通过向键盘输入数字的方式,来判断用户需要进入那个模式,就打开哪个模式的“开关”。因此我将用到switch语句,又因为考虑到用户可能输入了对应模式以外的数字,因此可以将“开关”放入循环,直到用户输入正确模式对应的数字为止。代码如下:

int menu()
{
	int flag = 0;
	printf("**********选项*********\n");
	printf("*******1.开始游戏*******\n");
	printf("*******2.退出游戏*******\n");
	do
	{//接收输入的值,1为开始游戏,进入game,2为退出游戏return 0,输入其他数则循环scanf
		scanf("%d", &flag);
		switch (flag)
		{
		case 1: printf("游戏开始\n"); game(); break;
		case 2: printf("游戏结束\n"); flag = 2; break;
		default:printf("输入错误请重新输入:"); flag = 0; break;
		}
	} while (flag == 0);
}

现对上述menu函数的代码解释:

  1. 打印游戏的菜单界面,很好理解,直接打印就可以了,并标号;

  2. 根据从键盘接收的值判断用户希望哪个模式,以flag为开关标志,用switch实现游戏的各个模式;

  3. 将上述2包装于循环中,并设置循环条件flag为假时继续循环。其中若开始游戏,即为case1,则进入game函数实现游戏内容。

game函数代码如下:

int game()
{
	int guess,rad;
	
	//生成随机数
	srand((unsigned int)time(NULL));
	rad = rand() % (100 + 1);
	int times = 0;
	while (1)
	{
		if (times >= 4) 
		{
			printf("次数用完\n");
			break;
		}
		scanf("%d", &guess);
		if (rad < guess)
		{
			printf("猜大了\n");
			times++;
			continue;
			
		}
		else if (rad > guess)
		{
			printf("猜小了\n"); 
			times++;
			continue;
			
		}
		else
		{
			printf("恭喜你,猜对了\n"); 
			break;
		}
		
		
	}
	
}

现对game函数代码进行如下解释:

  1. 先定义猜的数和随机数存放的的变量;

  2. 给随机数赋值,此处用srand函数和time,因此要包含头文件stdlib.htime.h

  3. 定义并初始化猜了的次数,以便猜数字的循环判断中终止循环,提高游戏的可玩性;

  4. 使用条件语句判断用户所猜数字与函数所给数字进行比较,并判断猜的次数。如果猜的次数用完或者已经猜到正确数则结束游戏。

最后就是主函数调用一下menu函数就OK啦!!!
实现代码如下:

int main()
{
	menu();
	//实现猜数字游戏
	return 0;
}

总结:此游戏是非常简单的一个程序,运用简单的三大结构就可以完成,大家快动手试试吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值