游戏内容:随机生成一个1~100的数字,让玩家猜测,当玩家猜错的时候提示是大了还是小了。
首先我们先对内容进行分析。
1.我们需要随机生成一个范围在1-100的数据供玩家猜测
于是我们可以想到用rand()函数来实习
ret = rand() % 100 +1;
但是如果多次实验,会发现每次给的随机数在重新运行程序后都是一样的,这样的随机是重复的,达不到游玩的效果,所以我们需要引入一个srand()函数作为设置器。
srand((int)time(NULL));
同时我们需要在开头引入这两个函数的头文件
#include<stdlib.h>
#include<time.h>
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<stdio.h>
#include<stdlib.h>
#include<time.h>
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;
}