猜数字游戏
首先先构建一个游戏框架。
#include <stdio.h>
void menu()
{
printf("************************\n");
printf("******* 1.play *******\n");
printf("******* 0.exit *******\n");
printf("************************\n");
}
void game()
{
}
int main()
{
int input = 0;
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游戏!\n");
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("输入错误,请再次输入!");
continue;
}
} while (input);
return 0;
}
如何生成随机值
生成随机数我们需要用到 rand 函数
初始阶段运用该网站:https://legacy.cplusplus.com/
从中搜索rand
rand 函数返回的是:
0~RAND_MAX。(十六进制 HEX:0x7FFF) (十进制 DEC:32767)
不过 rand 函数在使用前要使用一个 srand 函数来设置随机值的生成器。
srand 函数需要给定一个值如:
注:要包含头文件<stdlib.h>
但是这样还需要自己输入值才能显示出值,而且如果输入值相同且过快可能输出的数值是相同的,那就需要用到时间戳
注:包含头文件<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned int) (time(NULL)));
int ret = rand();
printf("%d", ret);
return 0;
}
NULL 空指针
缩小范围
1 ~ 100 以内:
int ret = rand () % 100 + 1 ;
任何数 % 100 一定是 0~99 之间的数,然后加 1 就是 1 到 100;
整体代码
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("************************\n");
printf("******* 1.play *******\n");
printf("******* 0.exit *******\n");
printf("************************\n");
}
void game()
{
//生成随机数
int i = 0;
int ret = rand()%100+1;
//猜数字
while(1)
{
printf("请输入>:");
scanf("%d", &i);
if (i < ret)
{
printf("猜小了!\n");
}
else if (i > 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:
printf("开始游戏!\n");
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("输入错误,请再次输入!");
continue;
}
} while (input);
return 0;
}