题目:
由系统随机生成0~100之间的随机整数,用户来猜。
模块分析
-
菜单设置
自定义菜单函数,选择进行游戏还是退出,利用printf函数打印出菜单样式,代码实现如下
void menu() {
printf("****************\n");
printf(" 1.play\n");
printf(" 0.exit\n");
printf("****************\n");
printf("请输入你的选择:\n");
}
游戏实现:
主要由三个选择语句实现。键盘输入数字,对输入数字与生成的随机数进行判断,当输入数<随机数,输出“猜小了”;输入数>随机数,输出“猜大了”;输入数=随机数,输出“猜对了”
其中随机数的获得利用rand 函数,使用方法介绍可以参考链接:https://legacy.cplusplus.com/reference/cstdlib/rand/?kw=rand
在使用rand函数前,需要调用srand 生成器,参考链接:https://legacy.cplusplus.com/reference/cstdlib/srand/?kw=srand
srand需要一个随机参数,可以使用时间戳实现,即time,参考链接:https://legacy.cplusplus.com/reference/ctime/time/?kw=timesh
实现代码如下:
void game() {
int ret = rand()%100+1;
int num=0;
while(1)
{
printf("请输入你猜的数字\n");
scanf("%d", &num);
if (num > ret) {
printf("猜大了\n");
}
else if (num < ret) {
printf("猜小了\n");
}
else {
printf("恭喜你,猜对啦!\n");
Sleep(2000);
system("cls");
break;
}
}
}
主函数:
在主函数中调用菜单函数后,键盘输入选择,利用Switch语句实现选择,调用游戏函数
代码实现如下:
int main() {
srand((unsigned int)time(NULL)); //randa函数生成器
int input = 0;
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游戏\n");
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新输入\n");
break;
}
} while (input);
return 0;
}
完整代码:
#include <stdio.h>
#include <stdlib.h> //rand及system函数的头文件
#include <time.h> //time函数的头文件
#include <windows.h> //sleep函数头文件
void menu() {
printf("****************\n");
printf(" 1.play\n");
printf(" 0.exit\n");
printf("****************\n");
printf("请输入你的选择:\n");
} //菜单函数
void game() {
int ret = rand()%100+1; //获取随机数
int num=0; //猜的数字
while(1)
{
printf("请输入你猜的数字\n");
scanf("%d", &num);
if (num > ret) {
printf("猜大了\n");
}
else if (num < ret) {
printf("猜小了\n");
}
else {
printf("恭喜你,猜对啦!\n");
Sleep(2000); //间隔2000毫秒
system("cls"); //清屏
break;
}
}
} //游戏实现
int main() {
srand((unsigned int)time(NULL)); //随机数生成器
int input = 0; //菜单选择
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游戏\n");
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新输入\n");
break;
}
} while (input);
return 0;
}