目录
前言:
1.先看主体部分(大体逻辑的部分)
a.为什么用do...while循环:
b.switch语句:
c.关于scanf ( ) 中的 %d %s 和 printf ( ) 的关系
e.为什么 intput 在while( )中:
3.game()函数
a.game()函数又分为俩个小块
b.生成随机数:
c.猜数字的过程中
4.结语
前言:
猜数字游戏是非常适合初学者学习的代码,其中包含的函数、循环和逻辑方式等知识点。这既能起到对以往知识的复习,也可以学习到一种不同的逻辑思考方式。有一些知识点可能曾经闻所未闻的,不要像多数人一样放弃,如果不走出舒适圈就不可能进步。难题摆在这里,唯一可以改变现状的只有你自己,加油。
以下是猜数字游戏的所有代码:
//要求写一个猜数字游戏
//1.自动产生一个1-100之间的随机数字
//2.猜数字
// a.猜对了,就恭喜你,游戏结束
// b.猜错了,会告诉你猜大了还是猜小了,继续猜,直到猜对为止
//3.游戏一直玩下去,除非退出游戏
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
void menu()
{
printf("***********************\n");
printf("******* 1.play ******\n");
printf("******* 0.exit ******\n");
printf("***********************\n");
}
void game()
{
//猜数字游戏的实现
// 1.生成一个随机数
//rand函数返回了一个0-3276之间的数字
//时间-时间戳
int ret = rand() % 100 + 1;//%100的余数是0-99,然后+1,范围就是1-100
//printf("%d\n",ret);
//2.猜数字
int guess = 0;
while (1)
{
printf("请输入数字:>");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();//打印菜单
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
} while (input);
return 0;
}
1.先看主体部分(大体逻辑的部分)
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();//打印菜单
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
} while (input);
return 0;
}
a.为什么用do...while循环:
游戏设计的要求是运行程序就可以玩一把,第一把结束玩家再去做判断要不要玩下一把。此循环非常适合设计要求
b.switch语句:
注意此语句的使用要求
c.关于scanf ( ) 中的 %d %s 和 printf ( ) 的关系
game ( )函数运行时去执行游戏就行,不需要返回值
e.为什么 intput 在while( )中:
while()根据()里的值来判断要不要进行下一次循环
试想一下:
3.game()函数
void game()
{
//猜数字游戏的实现
// 1.生成一个随机数
//rand函数返回了一个0-3276之间的数字
//时间-时间戳
int ret = rand() % 100 + 1;//%100的余数是0-99,然后+1,范围就是1-100
//printf("%d\n",ret);
//2.猜数字
int guess = 0;
while (1)
{
printf("请输入数字:>");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
a.game()函数又分为俩个小块,一个是生成随机数,另一个是玩家猜数字
b.生成随机数:
rand()函数返回一个0~3276的之间的数,我们需要的是0~100之间的随机数,再%100得到的就是0~99之间的数,最后+1得到的就是1~100之间的数了
c.猜数字的过程中
特别注意scanf函数一定要在while循环中,游戏结束一定要break,否则会一直游戏下去
4.结语
如果对您有帮助的话,不要忘记点赞+关注哦,蟹蟹