游戏要求:
1.电脑自动生成1-100的随机数
2.玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或者小了的反馈,直到猜对,游戏结束。
设计思路:
1.进入游戏必须要有菜单(设计一个菜单)
2.根据菜单指引开始游戏
(1)输入1开始游戏,输入0退出游戏,输入别的数字则输出输入错误
(2)电脑生成一个符合要求的随机数
(3)开始猜数字:分为大了,小了,猜对了;猜错后循环直到猜对。
1.设计一个菜单
2.根据菜单指引开始游戏
1)输入1开始游戏,输入0退出游戏,输入别的数字则输出输入错误
(2)电脑生成一个符合要求的随机数(1-100)
需要用到的函数 rand()函数 srand()函数 time函数
rand()函数:
rand()函数调用需要包含一个头文件#include <stdlib.h>
生成一个伪随机数,范围在0-RAND_MAX之间,大部分编译器显示是32767,为什么叫伪随机数呢?
因为rand()函数生成的随机数不管运行多少次结果都是一样的。种子默认为1。
srand()函数:
同样的调用该函数需要包含一个头文件#include <stdlib.h>
通过srand函数的参数seed来设置rand函数生成随机数的种子。
time函数:
time函数会返回当前的日历时间,其实返回的是1970.1.1,0:00到程旭运行时间的差值,单位是秒。在这个游戏里,让time函数返回时间戳,time(NULL)。
那怎么生成1-100的随机数呢?
//1.生成随机数 //2.对99取余操作 3.//再加一。
(3)开始猜数字:分为大了,小了,猜对了;猜错后循环直到猜对。
编译环境是VS2022,总代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
menu()
{
printf("********************\n");
printf("**** 1.进入游戏 ****\n");
printf("**** 0.退出游戏 ****\n");
printf("********************\n");
printf("输入>> ");
}
guess()
{
srand((unsigned int)time(NULL));
int r = rand();
r = r % 99 + 1;
do//先玩一次
{
int figure;
printf("请输入一个值,范围在1-100 ");
scanf("%d", &figure);//输入一个值
if (figure < r)
printf("猜小了\n");
else if (figure > r)
printf("猜大了\n");
else {
printf("恭喜您,猜对了\n");
break;
}
} while (1);
}
int main()
{
menu();
int input;
scanf("%d", &input);
switch (input)//根据输入情况不同做出不同的反应。
{
case 0:break;
case 1:guess();
break;
default:
printf("输入错误\n"); break;
}
return 0;
}
******给游戏加上限制次数的功能:需要加入一个变量count
恳请大家批评指正!!!