C语言中如何编一个数字益智小游戏

小编给大家分享一下C语言中如何编一个数字益智小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

程序功能及运行情况

设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力。游戏共设有四个不同的小游戏,分别是一位数四则运算、两位数四则运算、找最值游戏、排序游戏。程序能实现产生随机题目,并能检验玩家的作答是否正确。为了小朋友能感受到游戏的乐趣,特意设置了得分系统,答对不同题目有不同的加分,并会根据总得分划分不同「段位」,呈现给玩家。另外,程序还运用了更加充满活力的设计,让玩家爱上该游戏。

程序运行截图主菜单

C语言中如何编一个数字益智小游戏C语言中如何编一个数字益智小游戏

运算游戏

C语言中如何编一个数字益智小游戏C语言中如何编一个数字益智小游戏

找最值游戏

C语言中如何编一个数字益智小游戏

排序游戏

C语言中如何编一个数字益智小游戏

得分统计

C语言中如何编一个数字益智小游戏

代码部分头文件区域

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
intscore0=0;
intu,z;

启动界面及主菜单

intmain()//主函数游戏说明
{
intmenu();
charo;
printf("\n\n");
printf("\t================\n");
printf("\t=数字益智小游戏=\n");
printf("\t==\n");
printf("\t=欢迎游玩该数字益智小游戏,游戏共设有=\n");
printf("\t=四个小游戏,其中『算』小游戏各设有四=\n");
printf("\t=个关卡。当你挑战难度越高的小游戏,并=\n");
printf("\t=挑战成功,你将获得更高的得分奖励,最=\n");
printf("\t=终将根据你的总得分划分你的游戏段位。=\n");
printf("\t==\n");
printf("\t==\n");
printf("\t=*********=\n");
printf("\t=*游戏段位*=\n");
printf("\t=*『青铜』---5分以下*=\n");
printf("\t=*『白银』---5分-10分*=\n");
printf("\t=*『黄金』---10分-15分*=\n");
printf("\t=*『铂金』---15分-20分*=\n");
printf("\t=*『钻石』---20分-25分*=\n");
printf("\t=*『星耀』---25分-30分*=\n");
printf("\t=*『王者』---30分以上*=\n");
printf("\t=*********=\n");
printf("\t==\n");
printf("\t=作者:Cowjiang=\n");
printf("\t==\n");
printf("\t================\n\n");
printf("\t按回车键即可开始游戏");
scanf_s("%c",&o,1);
if(o=='\n')//输入回车开始游戏
{
system("cls");
menu();
}
else
exit(0);
}

intmenu()//游戏主菜单函数
{
voidone_arithmetic();
voidtwo_arithmetic();
voidcomparation();
voidmaxmin();
intscore();
intscores();
intscorep();
into;
system("color30");
printf("\n\n");
printf("\t**\n");
printf("\t**\n");
printf("\t*主菜单*\n");
printf("\t**\n");
printf("\t***************\n");
printf("\t**\n");
printf("\t*1.『算』一位数运算*\n");
printf("\t*2.『算』两位数运算*\n");
printf("\t*3.『找』夹缝找最值*\n");
printf("\t*4.『排』排序比大小*\n");
printf("\t*5.我的目前得分*\n");
printf("\t*6.退出益智游戏*\n");
printf("\t**\n");
printf("\t*********\n\n");
printf("\t请输入序号选择:");
scanf_s("%d",&o);
if(o==1)
{
one_arithmetic();
}
elseif(o==2)
{
two_arithmetic();
}
elseif(o==3)
{
maxmin();
}
elseif(o==4)
{
comparation();
}
elseif(o==5)
{
scorep();
}
elseif(o==6)
{
printf("\n\t\t=================\n");
printf("\t\t==\n");
printf("\t\t=感谢你的游玩!=\n");
printf("\t\t==\n");
printf("\t\t=================\n");
exit(0);
}
else
{
printf("\n\t你输入的数字序号有误噢,请重新选择!\n");
system("pause");
system("cls");
menu();
}
}

得分统计

intscorep()//查看当前得分
{
system("colorF4");
z=score0;
system("cls");
printf("\n\n");
printf("\t\t*\n");
printf("\t\t**\n");
printf("\t\t**\n");
printf("\t\t********\n");
printf("\t\t*当前得分:*\n");
printf("\t\t*%2d分*\n",z);
printf("\t\t****\n");
printf("\t\t****\n");
if(z<=5)
{
printf("\t\t**[青铜]**\n");
printf("\t\t**\n");
}
elseif(z>5&&z<=10)
{
printf("\t\t**[白银]**\n");
printf("\t\t**\n");
}
elseif(z>10&&z<=15)
{
printf("\t\t**[黄金]**\n");
printf("\t\t**\n");
}
elseif(z>15&&z<=20)
{
printf("\t\t**[铂金]**\n");
printf("\t\t**\n");
}
elseif(z>20&&z<=25)
{
printf("\t\t**[钻石]**\n");
printf("\t\t**\n");
}
elseif(z>25&&z<=30)
{
printf("\t\t**[星耀]**\n");
printf("\t\t**\n");
}
elseif(z>30)
{
printf("\t\t**[王者]**\n");
printf("\t\t**\n");
}

printf("\n\n\t继续游戏请输入1,退出游戏请输入2:");
scanf_s("%d",&u);
if(u==1)//返回主菜单
{
system("cls");
menu();
}
elseif(u==2)//退出游戏
{
printf("\n\t\t=================\n");
printf("\t\t==\n");
printf("\t\t=感谢你的游玩!=\n");
printf("\t\t==\n");
printf("\t\t=================\n");
exit(0);
}
else
{
printf("\n\t你输入的数字序号有误噢,返回主菜单!\n");
menu();
}
}

intscore()//加分函数
{
score0++;
returnscore0;
}

intscores()//减分函数
{
score0--;
returnscore0;
}

一位数运算

voidone_arithmetic()//一位数运算
{
intp,a,b,c,d,f,g,h,l,m;
floate;
srand(time(NULL));
a=rand()%10;
b=rand()%10;
g=rand()%10;
h=rand()%10;
system("colorE0");
system("cls");
printf("\n\n\t\t********\n");//一位数运算主菜单
printf("\t\t**\n");
printf("\t\t*1.[第一关]加法*\n");
printf("\t\t*2.[第二关]减法*\n");
printf("\t\t*3.[第三关]乘法*\n");
printf("\t\t*4.[第四关]除法*\n");
printf("\t\t*5.[进阶]混合运算*\n");
printf("\t\t*6.[返回]主菜单*\n");
printf("\t\t**\n");
printf("\t\t********\n");
printf("\t\t***\n");
printf("\t\t***\n");
printf("\t\t*****\n");
printf("\t\t***\n");
printf("\t\t*\n");
printf("\t\t请输入数字序号选择挑战关卡:");
scanf_s("%d",&p);
while(p==1)//一位数加法
{
system("cls");
printf("\n\t%d+%d=",a,b);
scanf_s("%d",&c);
if(c==a+b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=a+b)
{
system("color4E");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
one_arithmetic();

}
while(p==2)//一位数减法
{
system("cls");
if(a>b)//控制大数减小数
{
printf("\n\t%d-%d=",a,b);
scanf_s("%d",&c);
if(c==a-b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=a-b)
{
system("color4E");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
one_arithmetic();
}
elseif(a<b)
{
system("cls");
printf("\n\t%d-%d=",b,a);
scanf_s("%d",&c);
if(c==b-a)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=b-a)
{
system("color4E");
printf("\n\t太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
one_arithmetic();
}
}
while(p==3)//一位数乘法
{
system("cls");
printf("\n\t%d*%d=",a,b);
scanf_s("%d",&c);
if(c==a*b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=a*b)
{
system("color4E");
printf("\n\t\t太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
one_arithmetic();
}
while(p==4)//一位数除法
{
system("cls");
b=rand()%(9)+1;//防止被除数为0
printf("\n\t(四舍五入保留整数)%d除以%d等于",a,b);
scanf_s("%f",&e);
f=b/2;//四舍五入
if(a%b<=f)
{
d=(int)(e);
if(d==a/b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(d!=a/b)
{
system("color4E");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
}
if(a%b>f)
{
d=(int)(e-0.5);
if(d==a/b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(d!=a/b)
{
system("color4E");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
}
one_arithmetic();
}
while(p==5)//一位数混合运算
{
system("cls");
printf("\n\t%d+%d*(%d-%d)=",a,b,g,h);
scanf_s("%d",&l);
m=a+b*(g-h);
if(l==m)
{
system("colorAE");
printf("\n太棒了!挑战成功,加2分!\n\n");
score();
score();
system("pause");
}
elseif(l!=m)
{
system("color4E");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
one_arithmetic();
}
while(p==6)
{
system("cls");
menu();
}
while(p<1||p>6)
{
system("color4E");
printf("\n\t\t输入数字序号有误噢,请重新输入!\n\n");
system("pause");
one_arithmetic();
}
}

两位数运算

voidtwo_arithmetic()//两位数运算
{
intp,a,b,c,d,f,g,h,l,m;
floate;
srand(time(NULL));
a=rand()%(90)+10;
b=rand()%(90)+10;
g=rand()%(90)+10;
h=rand()%(90)+10;
system("colorB0");
system("cls");
printf("\n\n\t\t********\n");//两位数运算主菜单
printf("\t\t**\n");
printf("\t\t*1.[第一关]加法*\n");
printf("\t\t*2.[第二关]减法*\n");
printf("\t\t*3.[第三关]乘法*\n");
printf("\t\t*4.[第四关]除法*\n");
printf("\t\t*5.[进阶]混合运算*\n");
printf("\t\t*6.[返回]主菜单*\n");
printf("\t\t**\n");
printf("\t\t********\n");
printf("\t\t***\n");
printf("\t\t***\n");
printf("\t\t*****\n");
printf("\t\t***\n");
printf("\t\t*\n");
printf("\t\t请输入数字序号选择挑战关卡:");
scanf_s("%d",&p);
while(p==1)//两位数加法
{
system("cls");
printf("\n\t%d+%d=",a,b);
scanf_s("%d",&c);
if(c==a+b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=a+b)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
two_arithmetic();
}
while(p==2)//两位数减法
{
if(a>b)//控制大数减小数
{
system("cls");
printf("\n\t%d-%d=",a,b);
scanf_s("%d",&c);
if(c==a-b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=a-b)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
two_arithmetic();
}
elseif(a<b)
{
system("cls");
printf("\n\t%d-%d=",b,a);
scanf_s("%d",&c);
if(c==b-a)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=b-a)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
two_arithmetic();
}
}
while(p==3)//两位数乘法
{
system("cls");
printf("\n\t%d*%d=",a,b);
scanf_s("%d",&c);
if(c==a*b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(c!=a*b)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
two_arithmetic();
}
while(p==4)//两位数除法
{
b=rand()%(9)+1;//防止被除数为0
system("cls");
printf("\n\t(四舍五入保留整数)%d除以%d等于",a,b);
scanf_s("%f",&e);
f=b/2;//四舍五入
if(a%b<=f)
{
d=(int)(e);
if(d==a/b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(d!=a/b)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
}
if(a%b>f)
{
d=(int)(e-0.5);
if(d==a/b)
{
system("colorAE");
printf("\n太棒了!挑战成功,加1分!\n\n");
score();
system("pause");
}
elseif(d!=a/b)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
}
two_arithmetic();
}
while(p==5)//两位数混合运算
{
system("cls");
printf("\n\t%d+%d*(%d-%d)=",a,b,g,h);
scanf_s("%d",&l);
m=a+b*(g-h);
if(l==m)
{
system("colorAE");
printf("\n太棒了!挑战成功,加2分!\n\n");
score();
score();
system("pause");
}
elseif(l!=m)
{
system("color4B");
printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");
system("pause");
}
one_arithmetic();
}
while(p==6)
{
system("cls");
menu();
}
while(p<1||p>6)
{
system("color4B");
printf("\n\t\t输入数字序号有误噢,请重新输入!\n\n");
system("pause");
two_arithmetic();
}
}

排序游戏

voidcomparation()//排序游戏
{
inta[5],b[5];
inti,j,n,p,q;
srand(time(NULL));
for(i=0;i<5;i++)
a[i]=rand()%10;
system("cls");
system("color9F");
printf("\n\n\t**************\n");//排序游戏规则
printf("\t*游戏规则*\n");
printf("\t*开始游戏后将会显示随机五个整数,*\n");
printf("\t*请根据提示从小到大依次输入排序后*\n");
printf("\t*的五个整数,若排序正确即可获得3*\n");
printf("\t*分奖励。加油噢,你能行!*\n");
printf("\t**************\n");
printf("\t***\n");
printf("\t***\n");
printf("\t*****\n");
printf("\t***\n");
printf("\t*\n");
printf("\t输入数字0即可开始游戏:");
scanf_s("%d",&p);
if(p==0)
printf("\n\n\t**************\n");
printf("\t**\n");
printf("\t*");
for(i=0;i<5;i++)
printf("%d",a[i]);
for(j=0;j<4;j++)//将数组从小到大排列
{
for(i=0;i<4-j;i++)
{
if(a[i]>a[i+1])
{
n=a[i];
a[i]=a[i+1];
a[i+1]=n;
}
}
}
printf("*\n");
printf("\t**\n");
printf("\t**************\n\n");
printf("接下来,请从小到大输入排序后的五个整数(用空格隔开):");
for(i=0;i<5;i++)
scanf_s("%d",&b[i]);
for(i=0;i<5;i++)//验证回答正确与否
{
if(a[i]==b[i])
continue;
else
{
system("color49");
printf("\n\t太可惜了,就差一点就成功了!再挑战一次吧!\n\n");
system("pause");
comparation();
}

}
system("colorAF");
printf("\n哇你太棒啦,挑战成功!获得3分奖励!\n\n");
score();
score();
score();
system("pause");
system("color0F");
printf("\n\n想挑战别的游戏吗?\n\n");
printf("1.挑战其它游戏");
printf("2.继续挑战排序游戏");
printf("3.查看当前得分\n\n");
printf("回复数字序号选择一项吧:");
scanf_s("%d",&q);
if(q==2)
{
system("cls");
comparation();
}
elseif(q==3)
scorep();
else
{
system("cls");
menu();
}

}
else//退出排序游戏?
{
system("colorF0");
printf("\n\n想玩别的游戏吗?\n\n");
printf("1.挑战其它游戏");
printf("2.继续当前游戏\n\n");
printf("回复数字序号选择一项吧:");
scanf_s("%d",&q);
if(q==2)
comparation();
else
{
system("cls");
menu();
}
}
}

找最值游戏

voidmaxmin()
{
inti,j,n,p,q,max,min,maxx,minn;
inta[5];
srand(time(NULL));
system("colorDF");
system("cls");
printf("\n\n\t**************\n");//找最值游戏规则
printf("\t*游戏规则*\n");
printf("\t*开始游戏后将会显示随机五个整数,*\n");
printf("\t*请分别找出五个整数的最大值和最小*\n");
printf("\t*值,若回答正确即可获得2分奖励。*\n");
printf("\t*加油噢,你能行!*\n");
printf("\t**************\n");
printf("\t***\n");
printf("\t***\n");
printf("\t*****\n");
printf("\t***\n");
printf("\t*\n");
printf("\t输入数字0即可开始游戏:");
scanf_s("%d",&p);
if(p==0)
{
for(i=0;i<5;i++)
a[i]=rand()%10;
printf("\n\n\t**************\n");
printf("\t**\n");
printf("\t*");
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("*\n");
printf("\t**\n");
printf("\t**************\n\n");
printf("接下来,请找出最大值:");
scanf_s("%d",&maxx);
printf("\n然后请找出最小值:");
scanf_s("%d",&minn);
max=a[4];
min=a[1];
for(i=0;i<5;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
if(maxx==max&&minn==min)//验证回答正确与否
{
system("colorAF");
printf("\n哇你太棒啦!获得奖励2分!\n\n");
score();
score();
system("pause");
system("color0F");
printf("\n\n想挑战别的游戏吗?\n\n");
printf("1.挑战其它游戏");
printf("2.继续挑战找最值游戏");
printf("3.查看当前得分\n\n");
printf("回复数字序号选择一项吧:");
scanf_s("%d",&q);
if(q==2)
{
system("cls");
maxmin();
}
elseif(q==3)
scorep();
else
{
system("cls");
menu();
}
}
else
{
system("color4F");
printf("\n有点小可惜,再挑战一次吧!\n\n");
system("pause");
maxmin();
}
}
else//退出找最值游戏?
{
system("colorF0");
printf("\n\n想玩别的游戏吗?\n\n");
printf("1.挑战其它游戏");
printf("2.回到当前游戏\n\n");
printf("回复数字序号选择一项吧:");
scanf_s("%d",&q);
if(q==2)
maxmin();
else
{
system("cls");
menu();
}
}
}

以上是“C语言中如何编一个数字益智小游戏”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-06-13 23:19:26
收藏
分享
海报
0 条评论
193
上一篇:Java中怎么使用Executor框架 下一篇:adb push中文路径文件名丢失后缀如何解决
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码