游戏玩法:每次随机生成一个1~100之间的数字,玩家通过输入数字来猜这个数,如果没猜中则提示玩家猜大了或者猜小了,
直到玩家猜中数字结束游戏。
如何实现随机生成?
可以使用rand函数(头文件是 #include
int random_num = rand() % 100 + 1;
但必须要调用srand函数
srand((unsigned)time(NULL));
void menu()
{
printf("**********************************\n");
printf("******** 1.play *******\n");
printf("******** 0.exit *******\n");
printf("**********************************\n");
}
void game()
{
int random_num = rand() % 100 + 1;//返回1~100的数字
//rand的范围:0~32767
int input = 0;
scanf("%d",& input);
while (1)
{
printf("请输入猜的数字>:");
scanf("%d", &input);
if (input > random_num)
{
printf("猜大了\n");
}
else if (input < random_num)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
利用do…while循环,让玩家多次猜数字,
switch语句,让玩家选择退出游戏还是继续游戏。
随机值(random_num) 生成1~100:
int random_num = rand() % 100 + 1:
返回1~100的数字,
rand的范围:0~32767。
srand((unsigned)time(NULL))
设置随机数生成器,
rand之前要调用srand。
int main()
{
int input = 0;
srand((unsigned)time(NULL)); //设置随机数生成器
//rand之前要调用srand
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
game();
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}
如果使用二分法进行猜 100以内的任何一个随机数,最多 七次 就可以正确猜对该随机数。
二分法又可以被称为二分查找,它描述了在有序集合中搜索特定值的过程。广义的二分查找是将问题的规模尽可能的缩小到原有的一半。
程序通过二分法不断缩小猜测范围, 直到猜中数字 n:
例如n = 97, 程序第一次猜测50, 判断数值太小。
第二次猜测75,判断数值太小。
第三次猜测87,判断数值太小。
第四次次猜测97,恭喜你猜对了!
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include //时间戳:随机值
void menu()
{
printf("**********************************\n");
printf("******** 1.play *******\n");
printf("******** 0.exit *******\n");
printf("**********************************\n");
}
void game()
{
int random_num = rand() % 100 + 1;//返回1~100的数字
//rand的范围:0~32767
int input = 0;
scanf("%d",& input);
while (1)
{
printf("请输入猜的数字>:");
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)); //设置随机数生成器
//rand之前要调用srand
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
game();
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (input);
return 0;
}
最后:
感谢阅读!
欢迎交流学习!!