浅浅谈谈猜数字游戏的制作
首先明确游戏架构
-
菜单
-
游戏内容
接着考虑游戏
菜单如何搭建:
通过从键盘输入数字的方式来完成两种游戏模式的选择(开始游戏,退出游戏)
游戏内容如何搭建:
通过从键盘输入的数字与电脑函数生成的随机数进行比较,如果不相等,则给出大小提示,并让玩家接着猜
接着只需要完成上述的要求的进行程序的设计即可,其余有关游戏体验方面的改进在制作过程中进行优化。
接下来我们就开始了!!!
通过上述思路,不难发现,我们可以将菜单和游戏封装成两个不同的函数,通过函数的调用来实现游戏的运作。那么我们先写好主函数,并将两个函数的名称menu
和game
也命名好。
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
函数的代码解释:
-
打印游戏的菜单界面,很好理解,直接打印就可以了,并标号;
-
根据从键盘接收的值判断用户希望哪个模式,以
flag
为开关标志,用switch
实现游戏的各个模式; -
将上述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
函数代码进行如下解释:
-
先定义猜的数和随机数存放的的变量;
-
给随机数赋值,此处用
srand
函数和time
,因此要包含头文件stdlib.h
和time.h
; -
定义并初始化猜了的次数,以便猜数字的循环判断中终止循环,提高游戏的可玩性;
-
使用条件语句判断用户所猜数字与函数所给数字进行比较,并判断猜的次数。如果猜的次数用完或者已经猜到正确数则结束游戏。
最后就是主函数调用一下menu
函数就OK啦!!!
实现代码如下:
int main()
{
menu();
//实现猜数字游戏
return 0;
}
总结:此游戏是非常简单的一个程序,运用简单的三大结构就可以完成,大家快动手试试吧!