简易版猜数游戏

目录

需求分析:

菜单:

选择难度:

主函数:

游戏

总结:


需求分析:

首先,在设计这个小游戏的时候,你得分析需要什么?根据我的分析,首先需要能让游戏跑起来吧

如果你游戏都跑不起来,那这游戏不就废了吗。其次就是设计菜单界面,进去后你能看到菜单供你

选择玩还是不玩,再其次就是设计游戏的难度,这样一个小小的猜数游戏也会变得很有趣。

以下是实现这个猜数游戏的函数声明:

  1. void game1();//简单
  2. void game2();//困难
  3. void game3();//随机
  4. void menu();//菜单界面
  5. int choice();//选择难度
  6. int main()//主函数

对于这些函数的声明我加上了注释方便理解,1-3是猜数游戏的实现、4是菜单界面的实现、5是选择难度的实现、6则是最主要的主函数,只有通过主函数才能实现1-5的功能。


菜单:

以下是菜单的实现:

  1.  void menu()
  2. {    
  3.        printf("    ***1:开始游戏***    \n");
  4.        printf("    ***0:退出***    \n");
  5.  }

菜单就两条输出语句,选1开始游戏换行,选0退出换行。

选择难度:

以下是选择难度的实现:

  1. int choice()

  2. {

  3.     printf("    ***1:简单***    \n");

  4.     printf("    ***2:困难***    \n");

  5.     printf("    ***3:随机***    \n");

  6.     printf("    ***0:退出***    \n");

  7.     int b = 0;//初始化选择

  8.     do {

  9.           printf("   请选择:  ");

  10.           scanf("%d", &b);

  11.           printf("\n");

  12.         switch (b) {

  13.         case 0:

  14.             printf("   游戏结束\n");

  15.             return 0;// 用户选择退出             

  16.        case 1:

  17.             game1();

  18.              break;

  19.        case 2:

  20.             game2();

  21.              break;

  22.         case 3:

  23.             game3();

  24.              break;

  25.        default:

  26.             printf("  只有简单、困难和随机呢!   \n");

  27.             break;

  28. }

  29.         }while (b);

  30. }             

  这里的选择难度用到do-while循环和分支语句switch,首先这个会先在界面输出以下四个语句

紧接着先是执行do-while循环,do-while循环上一篇章我说过这个循环不管怎么样都会先执行一

次,所以如图所示“请选择”被执行了,接着你输入数字进入switch语句,根据图中有四个选项分别

进入相应的分支,选1进入case 1、选2进入case 2以此类推。如果你想退出按0,游戏直接结束。

如下图所示:

主函数:

以下是主函数的实现:

  1. int main()

  2. {   

  3.       srand((unsigned int)time(NULL));//简单说能让你的rand函数能真正实现随机数

  4.        int a = 0;//选择  

  5.  do {      

  6.        menu();   

  7.        printf("   请选择:  ");      

  8.        scanf("%d", &a);    

  9.        printf("\n");    

  10.     switch (a)   

  11.      {      

  12.      case 0:        

  13.          printf("   游戏结束\n");         

  14.          break;      

  15.      case 1:         

  16.          if (choice()==0)

  17. {            

  18.          return 0;           

  19.  }          

  20.          break;   

  21.      default:      

  22.          printf("  兄嘚请输入正确的数字!   \n");   

  23.          break; 

  24.  }

  25.  } while (a);

  26.       return 0;

  27. }

主函数跟选择难度一样都有do-while循环和分支语句switch,不管怎么样都先执行一次,首先执行菜单函数,如下图所示,紧随着是通过你输入的数来进行下一步,如下图所示。

   

然后 srand((unsigned int)time(NULL));这里用到了srand函数以及time函数,如我注释简单来说能让rand函数能真正实现随机数。如果想了解的更详细可以去搜一下srand函数和time函数,其中牵扯了种子和时间戳这个概念。


游戏

以下是游戏的实现:

  1.     void game1()

  2. {

  3.         int d = rand() % 100 + 1;//生成随机数

  4.         int b = 0;//猜的数字

  5.         int count = 10;//次数

  6.         while (count) {

  7.             printf("   请输入,还剩%d次机会喔: ",count);

  8.             scanf("%d", &b);

  9.             if (b>d) 

  10.             {

  11.                 printf("\n");

  12.                 printf("    小可爱,猜大了呢!\n ");

  13.                 printf("\n");

  14.             }

  15.             else if (b<d ) 

  16.             {

  17.                 printf("\n");

  18.                 printf("    小可爱,猜小了呢!\n ");

  19.                 printf("\n");

  20.             }

  21.             else 

  22.             {

  23.                 printf("\n");

  24.                 printf("    小可爱,给你猜对了!\n ");

  25.                 printf("\n");

  26.             }

  27.             count--;

  28.             if (count==0 || b==d) {

  29.                 printf("   还剩%d次机会,正确答案是:%d\n ",count,d);

  30.                 printf("\n");

  31.                 printf("   游戏结束,重新选择\n ");

  32.                 printf("\n");

  33.                 break;

  34.             }

  35.         }

  36.     }

首先游戏用到了while循环和if分支语句,game1()属于简单难度,设置了10次猜数的机会,然后

while循环通过你的次数来循环直到猜完次数了就停下来,接着回到choice()让你重新选择。如果你

在10次机会中就猜对了它也会停下来,然后让你重新选择。

以下是效果图

然后是随机难度的实现:

  1.     void game3() {      

  2.         int d = rand() % 1000 + 1;//生成随机数

  3.         int b = 0;//猜的数字

  4.         int count = rand() % 1000 + 1;//次数

  5.         while (count) {

  6.             printf("   请输入,还剩%d次机会喔: ", count);

  7.             scanf("%d", &b);

  8.             if (b > d)

  9.             {

  10.                 printf("\n");

  11.                 printf("    小可爱,猜大了呢!\n ");

  12.                 printf("\n");

  13.             }

  14.             else if (b < d)

  15.             {

  16.                 printf("\n");

  17.                 printf("    小可爱,猜小了呢!\n ");

  18.                 printf("\n");

  19.             }

  20.             else

  21.             {

  22.                 printf("\n");

  23.                 printf("    小可爱,给你猜对了!\n ");

  24.                 printf("\n");

  25.             }

  26.             count--;

  27.             if (count == 0 || b == d) {

  28.                 printf("   还剩%d次机会,正确答案是:%d\n ", count, d);

  29.                 printf("\n");

  30.                 printf("   游戏结束,重新选择\n ");

  31.                 printf("\n");

  32.                 break;

  33.             }

  34.         }

  35.     }

随机难度就修改了次数,通过rand函数生成的随机数赋给了count,所以称随机难度,这样玩起来比较刺激。


总结:

通过实现这个简易版猜数游戏,能提升对循环和分支以及对代码的熟练度以及你的逻辑能力。如果

你有更好的想法可以自己去动手试试。如果有什么意见或者想法欢迎评论。

  • 32
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值