如何运用C语言制作猜数字小游戏?



  之前做课程设计无意中发现了这个好玩的游戏,于是就抱着做着玩的心态开始用c写这个东西,虽然东西不够精致,但是也没有太大瑕疵,希望各位大神们能给出点意见,也希望这篇小代码能给您帮助。(ps:游戏排行榜只能存储当下游戏的成绩,若退出则清空成绩)


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
void action0();
void action1();//游戏区
void action2();//排行榜
void action3();//帮助
void action4();//作弊
void action5();//退出游戏
void action6();//作弊初级
void action7();//作弊中级
void action8();//作弊高级
int i;
struct game//结构
{
 int scorce;//成绩
 char name[100];//姓名
}paihangbang[9];
void input()//输入默认的成绩和姓名10个
{
 for (i=0;i<10;i++)
 {
  paihangbang[i].scorce=10;
  strcpy(paihangbang[i].name,"菜鸟i");
 }
}
void action1()
{
 system("CLS");
 int a,b,c,d,e,f,g,h,x,p;
 int z;
 char c1;
 srand(time(NULL));//产
 a=1+(rand()%9);   //生
 b=1+(rand()%9);   //随
 c=1+(rand()%9);   //机
 d=1+(rand()%9);   //数
 e=a+b+c+d;
 printf("***************************************\n        游戏开始       \n   *****************************\n");
 printf("随机产生的四个十以内的数字之和为:\n%d\n",e);
 printf("请正确蒙出这四个随机数字的值和位置顺序\n");
  for (x=1;x<11;x++)//十次循环
  {
   scanf("%d%d%d%d",&f,&g,&h,&i);
   system("CLS");
  if (a==f&&b==g&&c==h&&d==i)
 {
        printf("恭喜您,蒙对了!!!\n");
  break;
 }
  else
  {
   printf("对不起,您蒙的答案错误,请重新蒙\n");
  }
 }
 if (x<10)
 {
 printf("游戏成功\n您的分数为:%d\n",x);
 for (i=0;i<10;i++)
 {
 if (x<paihangbang[i].scorce)
 {
  printf("恭喜您获得了进入排行榜的资格,是否加入排行榜同大师们一较高下?\n1.YES!!!\n2.NO!!!\n");
  scanf("%d",&z);
  c1=getchar();
  system("CLS");
  if (z==1)
  {
   paihangbang[i].scorce=x;//把成绩输进结构体
   printf("请输入姓名:\n");
   scanf("%s",&paihangbang[i].name);
   c1=getchar();
   system("CLS");
   break;
  }
 }
  else if (z==2)
  {
   printf("很遗憾,您错失了机会\n");
  }
 }
 }
 else
 {
  printf("真正的答案为:%d %d %d %d",a,b,c,d);
  printf("游戏失败\n辣鸡,智商是硬伤啊哈哈哈哈哈\n");
 }
 printf("请选择继续游戏、返回菜单或者退出游戏\n1.继续游戏\n2.菜单\n0.退出游戏\n");
 scanf("%d",&p);
 c1=getchar();
 system("CLS");
 if (p==1)
  action1();
 else
  if (p==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");
  else if (p==2)
   action0();
}
void action2()
{
 system("CLS");
 int p;
 char c;
 printf("                        排行榜                    \n");
 for (i=0;i<10;i++)
 {
  printf("第%d位:      %d            %s      \n",i+1,paihangbang[i].scorce,paihangbang[i].name);
 }
 printf("请选择返回菜单或者退出游戏\n\n1.菜单\n0.退出游戏\n");
 scanf("%d",&p);
 c=getchar();
 system("CLS");
  if (p==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");
  else if (p==1)
  action0();
}
void action3()
{
 system("CLS");
 int p,l,z;
 char c;
 printf("尊敬的有序用户您好\n如果您选择“帮助”选项\n这说明您根本没玩过此类游戏或者对此游戏规则毫不清楚\n不过请放心\n既然您点击了这个选项\n`````````````````````\n也不会给您提供帮助的哈哈哈哈菜鸟\n");
 printf("\n请给此游戏打分服务\n1.满意\n2.非常满意\n3.特别满意\n4.真辣鸡\n");
    scanf("%d",&p);
 system("CLS");
 if (p==4)
  printf("说你辣鸡你还不服气了?\n    菜鸟哈哈哈哈\n");
 else
  if (p==1)
  {
   printf("请选择3特别满意\n谢谢\n");
   scanf("%d",&l);
   system("CLS");
   if (l==3)
    printf("游戏规则如下:\n\n有四个数字\n您有10此机会猜这4个数字的值和位置\n若在十次之内猜对\n则游戏成功\n否则游戏失败\n您将收到来自在下的无情嘲讽\n成绩计算按你用的次数计算\n猜的次数越少成绩越高\n");
    else
    printf("不听话是不会告诉你规则的哈哈哈哈\n");
  }
  else
   if (p==2)
{
   printf("请选择3特别满意\n谢谢\n");
   scanf("%d",&l);
   system("CLS");
   if (l==3)
    printf("游戏规则如下:\n\n有四个数字\n您有10此机会猜这4个数字的值和位置\n若在十次之内猜对\n则游戏成功\n否则游戏失败\n您将收到来自在下的无情嘲讽\n成绩计算按你用的次数计算\n猜的次数越少成绩越高\n");
    else
    printf("你丫的就是个辣鸡!!!\n");
  }
   else
    if (p==3)
     printf("游戏规则如下:\n有四个数字\n您有10此机会猜这4个数字的值和位置\n若在十次之内猜对\n则游戏成功\n否则游戏失败\n您将收到来自在下的无情嘲讽\n成绩计算按你用的次数计算\n猜的次数越少成绩越高\n");
    else printf("菜鸟瞎输什么?\n");
 printf("请选择返回菜单或者退出游戏\n1.菜单\n0.退出游戏\n");
 scanf("%d",&z);
 c=getchar();
 system("CLS");
 if (z==1)
  action0();
 else
  if (z==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");

}
void action4()
{
 system("CLS");
 int p,l;
 char c;
 printf("作弊功能开启\n");
 printf("请选择继续游戏、返回菜单或者退出游戏\n1.继续游戏\n2.菜单\n0.退出游戏\n");
 scanf("%d",&p);
 c=getchar();
 system("CLS");
 if (p==1)
 {

  printf("请选择要使用的作弊等级\n1.初级\n2.初级\n3.高级\n");
  scanf("%d",&l);
  if (l==1)
  {
   system("CLS");
   action6();
  }
  else if (l==2)
  {
   system("CLS");
   action7();
  }
  else if (l==3)
  {
   system("CLS");
   action8();
  }
  else printf("输入指令有误\n");
 }
 else
  if (p==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");
  else if (p==2)
   action0();
}
void action5()
{
 printf("再见\n");
}
void action0()
{
 char start,c;
    printf("***************************\n    猜数字游戏    \n**********************\n");
 printf("\n\n\n      A.开始游戏\n      B.排行榜\n      C.帮助\n      D.作弊\n      E.退出游戏\n");
 scanf("%c",&start);
 c=getchar();
 switch (start)
 {
 case 'A':action1();break;
 case 'B':action2();break;
 case 'C':action3();break;
 case 'D':action4();break;
    case 'E':action5();break;
 default:putchar('\a');
 }
}
void action6()
{
 int a,b,c,d,e,f,g,h,x,y,p,z;
 char c1;
 srand(time(NULL));
 a=1+(rand()%9);
 b=1+(rand()%9);
 c=1+(rand()%9);
 d=1+(rand()%9);
 e=a+b+c+d;
 printf("***************************************\n        游戏开始       \n   *****************************\n");
 printf("随机产生的四个十以内的数字之和为:\n%d\n",e);
 printf("请正确蒙出这四个随机数字的值和位置顺序\n");
 printf("第一个数字是%d\n请继续\n",a);
 for (x=1;x<11;x++)
  {
   scanf("%d%d%d%d",&f,&g,&h,&i);
   system("CLS");
  if (a==f&&b==g&&c==h&&d==i)
 {
        printf("恭喜您,蒙对了!!!\n");
  break;
 }
  else
  {
   printf("对不起,您蒙的答案错误,请重新蒙\n");
  }
 }
 if (x<10)
 {
 printf("游戏成功\n您的分数为:%d\n",x);
 for (i=0;i<10;i++)
 {
 if (x<paihangbang[i].scorce)
 {
  printf("恭喜您获得了进入排行榜的资格,是否加入排行榜同大师们一较高下?\n1.YES!!!\n2.NO!!!\n");
  scanf("%d",&z);
  system("CLS");
  if (z==1)
  {
   paihangbang[i].scorce=x;
   printf("请输入姓名:\n");
   scanf("%s",&paihangbang[i].name);
   c1=getchar();
   system("CLS");
   break;
  }
 }
  else if (z==2)
  {
   printf("很遗憾,您错失了机会\n");
  }
 }
 }
 else
 {
  printf("真正的答案为:%d %d %d %d",a,b,c,d);
  printf("游戏失败\n辣鸡,智商是硬伤啊哈哈哈哈哈\n");
 }
 printf("请选择继续游戏、返回菜单或者退出游戏\n1.继续游戏\n2.菜单\n0.退出游戏\n");
 scanf("%d",&p);
 c1=getchar();
 system("CLS");
 if (p==1)
  action1();
 else
  if (p==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");
  else if (p==2)
   action0();

}
void action7()
{
 int a,b,c,d,e,f,g,h,i,x,y,p,z;
 char c1;
 srand(time(NULL));
 a=1+(rand()%9);
 b=1+(rand()%9);
 c=1+(rand()%9);
 d=1+(rand()%9);
 e=a+b+c+d;
 printf("***************************************\n        游戏开始       \n   *****************************\n");
 printf("随机产生的四个十以内的数字之和为:\n%d\n",e);
 printf("请正确蒙出这四个随机数字的值和位置顺序\n");
 printf("前两个数字是%d %d \n请继续\n",a,b);
 for (x=1;x<11;x++)
  {
   scanf("%d%d%d%d",&f,&g,&h,&i);
   system("CLS");
  if (a==f&&b==g&&c==h&&d==i)
 {
        printf("恭喜您,蒙对了!!!\n");
  break;
 }
  else
  {
   printf("对不起,您蒙的答案错误,请重新蒙\n");
  }
 }
 if (x<10)
 {
 printf("游戏成功\n您的分数为:%d\n",x);
 for (i=0;i<10;i++)
 {
 if (x<paihangbang[i].scorce)
 {
  printf("恭喜您获得了进入排行榜的资格,是否加入排行榜同大师们一较高下?\n1.YES!!!\n2.NO!!!\n");
  scanf("%d",&z);
  system("CLS");
  if (z==1)
  {
   paihangbang[i].scorce=x;
   printf("请输入姓名:\n");
   scanf("%s",&paihangbang[i].name);
   c1=getchar();
   system("CLS");
   break;
  }
 }
  else if (z==2)
  {
   printf("很遗憾,您错失了机会\n");
  }
 }
 }
 else
 {
  printf("真正的答案为:%d %d %d %d",a,b,c,d);
  printf("游戏失败\n辣鸡,智商是硬伤啊哈哈哈哈哈\n");
 }
 printf("请选择继续游戏、返回菜单或者退出游戏\n1.继续游戏\n2.菜单\n0.退出游戏\n");
 scanf("%d",&p);
 c1=getchar();
 system("CLS");
 if (p==1)
  action1();
 else
  if (p==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");
  else if (p==2)
   action0();
}
void action8()
{
 int a,b,c,d,e,f,g,h,i,x,y,p,z;
 char c1;
 srand(time(NULL));
 a=1+(rand()%9);
 b=1+(rand()%9);
 c=1+(rand()%9);
 d=1+(rand()%9);
 e=a+b+c+d;
 printf("***************************************\n        游戏开始       \n   *****************************\n");
 printf("随机产生的四个十以内的数字之和为:\n%d\n",e);
 printf("请正确蒙出这四个随机数字的值和位置顺序\n");
 printf("前三个数字是%d %d %d \n请继续\n",a,b,c);
 for (x=1;x<11;x++)
  {
   scanf("%d%d%d%d",&f,&g,&h,&i);
   system("CLS");
  if (a==f&&b==g&&c==h&&d==i)
 {
        printf("恭喜您,蒙对了!!!\n");
  break;
 }
  else
  {
   printf("对不起,您蒙的答案错误,请重新蒙\n");
  }
 }
 if (x<10)
 {
 printf("游戏成功\n您的分数为:%d\n",x);
 for (i=0;i<10;i++)
 {
 if (x<paihangbang[i].scorce)
 {
  printf("恭喜您获得了进入排行榜的资格,是否加入排行榜同大师们一较高下?\n1.YES!!!\n2.NO!!!\n");
  scanf("%d",&z);
  system("CLS");
  if (z==1)
  {
   paihangbang[i].scorce=x;
   printf("请输入姓名:\n");
   scanf("%s",&paihangbang[i].name);
   c1=getchar();
   system("CLS");
   break;
  }
 }
  else if (z==2)
  {
   printf("很遗憾,您错失了机会\n");
  }
 }
 }
 else
 {
  printf("真正的答案为:%d %d %d %d",a,b,c,d);
  printf("游戏失败\n辣鸡,智商是硬伤啊哈哈哈哈哈\n");
 }
 printf("请选择继续游戏、返回菜单或者退出游戏\n1.继续游戏\n2.菜单\n0.退出游戏\n");
 scanf("%d",&p);
 c1=getchar();
 system("CLS");
 if (p==1)
  action1();
 else
  if (p==0)
   printf("谢谢您的光临\n祝您生活愉快\n再见:-D\n");
  else if (p==2)
   action0();
}
int main()
{
 input();
 action0();
 return 0;
}

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值