概述
刚刚学完循环尝试做一个猜数字的小游戏,在玩任何一款游戏时,我们都希望有一个开始的界面能够引导我们去进行下一步的操作,所以我们打算先让屏幕显示一个是否选择玩游戏的菜单,然后再选择是否进入游戏。
根据前面所学while循环,for循环,do...while循环,此时只有do...while循环能够满足要求。先执行do内部的语句,判断是否可以往下执行,以此种方式来进行循环。此时,我们可以进行框架的初步构建zai
int main()
{
do
{
}
while;
return 0;
}
在do内部要采用 printf 来进行菜单的打印,并进行选择是否进入游戏,进入按1,退出游戏按 0,输入其他数字显示输入错误,此时只有3种情况,可以使用 switch 语句来进行选择。此时框架可以如下代码所示
int main()
{
int input = 0;
do
{
printf("************n");
printf("***1.play***n");
printf("***0.exit***n");
printf("************n");
scanf("%d", &input);
switch (input)
{
case 1:
game_start();
break;
case 0:
break;
default:
printf("请重新输入");
break;
}
} while(input);
return 0;
}
写到这个时候,基本的逻辑框架已经清楚了,在输入 1 的时候,游戏开始,在输入0的时候,break跳出,执行下面的while语句,此时的input为0 ,循环结束,当输入其他非0数时,打印一句“请重新输入”,此时的input为非0数,判断为真,程序继续进行(在C语言中,0表示假,非0表示真)。我们现在只需要实现 game_start 里边的内容即可。在这个函数内,需要产生一个随机数,然后输入的input与随机数做对比,如果输入的数字大,则输出“猜大了”,如果输入的数字小,则输出“猜小了”,猜对时,退出循环并打印“猜对了”。在c语言中产生随机数需要使用 rand() 函数,具体实现如下
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>
void game_start()
{
int input = 0;
int ret = rand() % 100 + 1;
printf("请输入数字->");
while (input != ret)
{
scanf("%d", &input);
if (input > ret)
printf("猜大了n");
if (input < ret)
printf("猜小了n");
}
printf("恭喜你,猜对了n");
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
printf("************n");
printf("***1.play***n");
printf("***0.exit***n");
printf("************n");
scanf("%d", &input);
switch (input)
{
case 1:
game_start();
break;
case 0:
break;
default:
printf("请重新输入");
break;
}
} while(input);
return 0;
}
此时,一个能够实现完整功能的猜数字游戏就完成了。可以再进一步封装一下,单独写一个菜单函数,让代码看起来更简洁。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>
void menu()
{
printf("************n");
printf("***1.play***n");
printf("***0.exit***n");
printf("************n");
}
void game_start()
{
int input = 0;
int ret = rand() % 100 + 1;
printf("请输入数字->");
while (input != ret)
{
scanf("%d", &input);
if (input > ret)
printf("猜大了n");
if (input < ret)
printf("猜小了n");
}
printf("恭喜你,猜对了n");
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
game_start();
break;
case 0:
break;
default:
printf("请重新输入");
break;
}
} while(input);
return 0;
}
这样一个简洁并且功能完整的猜数字游戏就实现了。
最后
以上就是勤恳铃铛为你收集整理的C语言实现益智小游戏--猜数字游戏的全部内容,希望文章能够帮你解决C语言实现益智小游戏--猜数字游戏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复