鹏哥的猜数字小游戏
猜数字游戏
电脑产生一个随机数,定义一个范围(1~100)
我们去猜
先做菜单(menu)
然后一步步测试逻辑,不然最后bug堆积
然后写游戏函数
头文件<stdlib.h>
生成随机数,
----------1.
用rand()函数
生成数为 0~RAND_MAX (332767)
生成了伪随机数 每次生成的都一样
需要srand来控制生成的数
srand()需要一个数,如果数固定,生成的每一次都一样,所以要传入一个随机数,该技术可以用时间戳(即传入当前的时间)
时间戳要time函数获得
头文件<time.h>
time_t time (time_t *timer)
time_t 是一个 类型, 整数类型
返回的是time_t的类型的数
srand()内需要unsigned类型的数
所以要强制转化一下类型
srand((unsigned)time(NULL))
空指针NULL
初始化指针 用NULL
为了范围生成在1~100
而现有rand()
rand()%100 范围为0~99
rand()%100+1 范围为1~100
--------------------------------------------------------------------------------------------------------------------------------------
以下为代码
//猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//菜单
void menu()
{
printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
printf("$$$$$$$$$$$$<< 扣1开始玩游戏 >>$$$$$$$$$$$$\n");
printf("$$$$$$$$$$$$$<< 扣0退出游戏 >>$$$$$$$$$$$$$\n");
printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
}
//游戏
void game()
{
int n = 0;
int x = 0;
int set = rand()%100+1;
printf("请输入你猜的数字:>");
while (1)
{
x++;
scanf("%d", &n);
if (n > set)
{
printf("猜大了,请重猜:>");
}
else if (n < set)
{
printf("猜小了,请重猜:>");
}
else
{
printf("恭喜你哦,耗费%d次猜对答案咯\n", x);
break;
}
}
}
int main()
{
srand((unsigned)time(NULL));
menu();
int x = 0;
do
{
scanf("%d", &x);
switch (x)
{
case 1:
printf("开始游戏咯\n");
printf("########################################\n");
printf("########################################\n");
game();
break;
case 0:
printf("--------------已退出游戏----------------\n");
printf("########################################\n");
break;
default:
break;
}
menu();
} while (x);
return 0;
}