C语言编一个数字益智小游戏
程序功能及运行情况
设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力。游戏共设有四个不同的小游戏,分别是一位数四则运算、两位数四则运算、找最值游戏、排序游戏。程序能实现产生随机题目,并能检验玩家的作答是否正确。为了小朋友能感受到游戏的乐趣,特意设置了得分系统,答对不同题目有不同的加分,并会根据总得分划分不同「段位」,呈现给玩家。另外,程序还运用了更加充满活力的设计,让玩家爱上该游戏。
程序运行截图主菜单
运算游戏
找最值游戏
排序游戏
得分统计
代码部分头文件区域
#include#include #include #include #include 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(af) { 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(af) { 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]小结
这个数字益智游戏是我第一次编写如此规模的C语言程序,知识水平有限,也花了不少时间去编写这个程序,代码可能有不尽完美的地方,也没有尽可能地简化代码。最后,非常欢迎各路大神给我提出一些建议,大家一起学习,共同进步,奥力给!
以上所述是小编给大家介绍的C语言编一个数字益智小游戏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。