hello uu们,我们本期的小游戏是在1-100里面猜数字,无聊摸鱼必备小游戏哦~~
闲话少谈,整活走起
? 首先我们可以简单的把这个程序主题分成两大块
1、游戏界面
2、猜数字过程主体
下面开始分步详细介绍。。。。。。
1、游戏界面
好的我们首先来完成第一块,在第一块内容中,窝们得让使用者清楚明确的选择是进入游戏or退出游戏,同时为了美观我们可以再上下分别再加上一行**来作为修饰
//游戏目录函数
void menu()
{
printf("************************\n");
printf("********1.play**********\n");
printf("********0.exit**********\n");
printf("************************\n");
}
这样我们的游戏进入界面就完成了,上效果图:
![](https://img-blog.csdnimg.cn/20210812002920337.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhdGVybWVsb253,size_16,color_FFFFFF,t_70)
?2、猜数字过程主体
在这一块我们可以分成几个小模块来分布实现~
1、生成随机数
在这块呢我们肯定选择用rand()来生成我们随机数,但是在这里又存在一个问题
每次生成的随机数都一模一样,这样的话我们只要记住了这个数字顺序那么这个游戏玩几次后就变得索然无味了
?所以在这里我们引用一个时间戳来生成来作为随机数产生的max:
srand((unsigned int)time(NULL))
然后由于这个如果放在循环体里面,每次都会调用一次也会造成产生的随机数每次都十分接近,这样游戏体验也是极其不好的,因此我们把这个放在main主函数里面,每次开启游戏调用一次即可这样的话,游戏体验good;
2、猜数字循环体
玩家不可能每次都一下猜中吧(欧皇附体当我没说)
对于博主这种非皇来说,肯定得很多次才可以猜中,此时不免就得用一个循环体,来一遍遍进入猜数字。不仅如此,我们还得每次提示一下猜大了猜小了这样才可以方便玩家不断逼近准确值:
while (1)
{
printf("请猜数字>:");
scanf("%d", &guess);
if (random_num < guess)
printf("猜大了\n");
else if (random_num > guess)
printf("猜小了\n");
else
{
printf("恭喜你,猜对了\n");
break;
}
}
这块代码写的过程一定要小心,一定要小心,一定要小心,重要的事情说三遍
千万不要把猜大了猜小了写错,不然玩家将离正确答案越来越远(别问我为什么会知道这个错误)
是不是以为这就结束了?
错,少了最重要一环:进入游戏一环,这环没有后面全部百搭
这里我们应用switch case语句,来实现选择进入游戏还是退出游戏,同时也是玩完一遍后是退出还是继续的环节~
do
{
//先完成一个游戏初始目录
menu();
printf("请选择:\n");
scanf("%d", &n);
switch (n)
{
case 1: //进入游戏
game();
break;
case 0: //退出游戏
break;
defult:
printf("输入错误请重新输入");
break;
}
}while (n);
好了,现在我们的代码就算分布完成了,上最终代码:
#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 random_num = rand() % 100 + 1;
int guess = 0;
while (1)
{
printf("请猜数字>:");
scanf("%d", &guess);
if (random_num < guess)
printf("猜大了\n");
else if (random_num > guess)
printf("猜小了\n");
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int n = 0;
srand((unsigned int)time(NULL));
do
{
//先完成一个游戏初始目录
menu();
printf("请选择:\n");
scanf("%d", &n);
switch (n)
{
case 1: //进入游戏
game();
break;
case 0: //退出游戏
break;
defult:
printf("输入错误请重新输入");
break;
}
}while (n);
return 0;
}
各位客官,冒着热气小游戏出炉了
博主在这里运行一遍给各位尝个鲜
![](https://img-blog.csdnimg.cn/20210812005243790.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhdGVybWVsb253,size_16,color_FFFFFF,t_70)
好了,本期分享到这里结束了我们下期见
博主在线祈求小伙伴们的三连~~~?
|