我们将利用随机数函数,来实现一个猜数字的小游戏。
这个小游戏的功能初步设计为:
- 系统生成一个0~101之间的数字
- 玩家通过输入来猜数字
- 如果输入的数字 != 生成数,系统即告知用户猜大了or猜小了
- 如果输入的数字 == 生成数,系统即告知用户猜对了
代码实现:
#define _CRT_SECURE_NO_WARNINGS 1
//猜数字小游戏(1~100)
#include <stdio.h>
#include <stdlib.h>//调用函数rand()——随机数
#include <time.h>//调用函数srand(time())——时间戳
//枚举菜单常量,以供后期swith语句使用
enum
{
EXIT,
PLAY
};
//游戏菜单
void menu()
{
printf("***********************\n");
printf("*******1.Play**********\n");
printf("*******2.Exit**********\n");
printf("***********************\n");
}
//游戏内容
void game()
{
//定义关键数字、玩家数字及玩家猜测次数
int key = 0;
int guess = 0;
int num = 0;
srand((unsigned int)time(NULL));//获取系统当前时间戳
key = rand() % 100 + 1;//rand():随机数函数,可以随机生成0~RAND_MAX(32,767)的数字。需包含头文件<stdlib.h>
do
{
num++;
printf("请输入你的答案: ");
scanf("%d", &guess);
if (guess < key)
{
printf(">>猜小了\n");
continue;
}
else if (guess > key)
{
printf(">>猜大了\n");
continue;
}
else
{
printf("真厉害,你猜对了!\n一共猜了%d次\n", num);
break;
}
} while (1);//while判定恒为真,利用循环内的“break”来跳出循环
}
int main()
{
int think = 0;
do
{
menu();
scanf("%d", &think);
switch (think)
{
case PLAY:
game();
continue;
case EXIT:
printf("您已退出游戏\n");
break;
default:
printf("无效指令。请输入0或1\n");
}
} while (think);//think == 1 时,while为真,继续游戏。think == 0 时,while为假,退出游戏。
return 0;
}