游戏内容: 随机生成一个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;
}