目录
1.我们先从易到难,打印出我们的菜单。(采用函数的方法,届时我们可以直接使用)
2.接下来,我们可以实现游戏主体(仍然采用函数的方法,代码更加清晰)
前言
C语言的学习中,作为新手小白,学会了循环后,我们就可以写一个简单的小程序练练手了!
思路
系统首先生成一个随机数,我们可以通过不停的输入,系统输出过大或者或小的反馈,并通过逐一减少默认数字的范围之后,最终锁定目标。
方法
1.随机数的生成。
2.游戏菜单,可供玩家选择游玩或者退出。
3.不管玩家开不开始游戏,都需要先循环一次,就考虑到用do…while循环和switch分支循环来判断玩家输入的数字,并做出相应的代码运行。
实现过程
1.我们先从易到难,打印出我们的菜单。(采用函数的方法,届时我们可以直接使用)
void menu()
{
printf("***************\n");
printf("**** 1.play ***\n");
printf("**** 0.exit ***\n");
printf("***************\n");
}
这里使用void
如果函数无参数,那么应该声明其参数为void
如果我们所写的函数不接受任何参数,那么一定要指明其参数为void。
2.接下来,我们可以实现游戏主体(仍然采用函数的方法,代码更加清晰)
想要实现这一步,我们就要清楚,系统如何生成随机数!
生成随机数的方法
1.
2.
3. 这里time_t的类型就是 在C语言中被定义为长整型,而srand()函数的参数类型为unsigned int (无符号整形),所以使用时要强制类型转换,而且**time()**函数,不需要设置参数,故用NULL代替。
然后根据我们从MSDN看到的,头文件需要加入
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
但是,当我们运行时可以发现,生成的随机数有时会过大,所以我们采用对rand取余100,那么生成的数字一定是0~99,然后加上1,即可生成我们所要的随机数!
int number1 = rand() % 100;
那么我们就可以写游戏的主体了。
void game()
{
int random_num = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入你想要猜的数值\n");
scanf("%d", &input);
if (input > random_num)
printf("您输入数值过大\n");
else if (input < random_num)
printf("您输入的数值过小\n");
else
{
printf("恭喜你!猜对了捏!\n");
break;
}
}
}
开始编写所需的代码,来实现选择
int main()
{
int input = 0;
srand((unsigned)time(NULL));//srand()函数的参数类型为unsigned int (无符号整形),所以使用时要强制类型转换,而且**time()**函数,不需要设置参数,故用NULL代替。
do
{
menu();
printf("请输入1或0,开始或者退出游戏\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}
最终结果
全部代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
void menu()
{
printf("***************\n");
printf("**** 1.play ***\n");
printf("**** 0.exit ***\n");
printf("***************\n");
}
void game()
{
int random_num = rand() % 100 + 1;
int input = 0;
int max=100;
int min=0;
while (1)
{
printf("请输入你想要猜的数值\n");
scanf("%d", &input);
if (input > random_num)
{
printf("您输入数值过大\n");
max= input;
printf("猜测范围要在%d - %d\n", min,max);
}
else if (input < random_num)
{
printf("您输入的数值过小\n");
min = input;
printf("猜测范围要在%d - %d\n", min,max);
}
else
{
printf("恭喜你!猜对了捏!\n");
Sleep(1000);
system("cls");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned)time(NULL));
do
{
menu();
printf("请输入1或0,开始或者退出游戏\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}
你的❤️点赞是我创作的动力的源泉
你的✨收藏是我奋斗的方向
你的🙌关注是对我最大的支持
你的✏️评论是我前进的明灯