猜数字小游戏
要求为:做一个猜测一个1-100范围内的随机数字的小游戏
1.菜单制作
构建一个菜单的函数,到时候主函数直接使用就可以了
void menu()//菜单
{
printf("************************n");
printf("****** 1.开始游戏 ******n");
printf("****** 0.退出游戏 ******n");
printf("************************n");
}
2.然后写主函数,主函数大体框架
运用一个do while循环函数,因为游戏结束了我希望还能够再来一把,所以用do while 函数,最后游戏结束了再判断是否再次进行游戏
一开始的菜单也给与一个开始游戏的选项,使用一个switch分支来处理第一次输入的值,这个时候除了输入1和0以外,输入别的数字,也会再次返回到开头让我们再次选择是否进行游戏
在输入1的时候引入了一个game函数,这个函数我还没有定义,只是提前先放进去
int main()
{
int begin = 0;
do
{
menu();//打印菜单
printf("请选择是否开始游戏:>");
scanf("%d", &begin);
switch (begin)
{
case 1:
printf("请输入1-100数字:>");
game();
break;
case 0:
printf("退出游戏n");
break;
default:
printf("输入错误请重新输入n");
break;
}
} while (begin);
return 0;
}
3.定义game函数
game函数就是游戏的主体,这个游戏我分为两个部分:1.生成一个1-100的随机数 2.把我们输入的数字跟那个随机数进行比较
(我这里为了限制数字在1-100的范围,采用了%100 + 1的式子,不局限与这个范围,可以想设置多大就设置多大)
void game()//猜数字游戏
{
//1.生成随机数
srand((unsigned int)time(NULL));
int r = rand()%100 + 1;//%100 = 0-99 + 1 =1-100
//printf("%dn", r); 测试随机数用的
}
先创建一个随机数,我用的方法就是拿时间戳和c语言自带的一个随机数来创建的,这里测试发现数字随机,但是不完全随机,生成的数字之间差距比较小,我就把
srand((unsigned int)time(NULL));
这个初始化的表达式放在了主函数第一行,就好了
生成1-100的随机数解决了就解决第二个问题:接受一个键盘输入的数字跟这个随机数进行比较并给予回馈
void game()//猜数字游戏
{
//1.生成随机数
int r = rand()%100 + 1;//%100 = 0-99 + 1 =1-100
//printf("%dn", r); 测试随机数用的
//2.输入数字去比较
while (1)
{
int num = 0;
scanf("%d", &num);
if (num < r)
{
printf("小了,再猜:>");
}
else if (num > r)
{
printf("大了,再猜:>");
}
else
{
printf("恭喜你,猜对了n");
break;
}
}
}
因为这个游戏只要不猜对就不会结束,所以让while一直循环,直到猜对了跳出循环
挺简单的一个小游戏,就是实现随机数有点麻烦


![[C语言] 猜数字小游戏的实现 [C语言] 猜数字小游戏的实现](http://www.mshxw.com/aiimages/31/587729.png)
