博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言之猜数字游戏
阅读量:5452 次
发布时间:2019-06-15

本文共 1531 字,大约阅读时间需要 5 分钟。

猜数字游戏

猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需要用空格或回车符加以区分,计算机会根据输入信息给出相应的提示信息:A表示位置与数字均正确的个数,B表示位置不正确但数字争取的个数,这样便可以根据提示输入,直到正确为止,并且根据输入次数给出相应评价。

源代码如下:

  1. #include<stdio.h>
  2. #include<time.h>
  3. #include<stdlib.h>
  4. void guess(int);
  5. int main(void)
  6. {
  7.  int i,n;
  8.   system("cls");                                              //清屏
  9.   printf("1.start game?(y/n)\n");
  10.   printf("2.Rule\n");
  11.   printf("3.exit\n");
  12.   printf("please choose:");
  13.   scanf("%d",&i);
  14.  while(i!=3)                                                   //循环结构
  15.  {
  16.   switch(i)
  17.   {
  18.    case 1:
  19.                    printf("please input n:\n");
  20.                    scanf("%d",&n);
  21.                    guess(n);
  22.                    break;
  23.             case 2:
  24.                    printf("\t\tThe rules of the game\n");
  25.                    printf("step1:input the number of digits\n");
  26.                    printf("step2:input the number,separated by a space between two numbers.\n");
  27.                    break;
  28.             default:
  29.                        break;
  30.   }
  31.   scanf("%d",&i);
  32.  }
  33. }
  34. void guess(int n)
  35. {
  36.  int acount,bcount,i,j,k=0,flag,a[10],b[10];
  37.  do
  38.  {
  39.   flag=0;
  40.   srand((unsigned long)time(0));
  41.   for(i=0;i<n;i++)
  42.   a[i]=rand()%10;
  43.   for(i=0;i<n-1;i++)
  44.   {
  45.    for(j=i+1;j<=n;j++)
  46.    if(a[i]==a[j])                                        //不能出现相同的数字
  47.    {
  48.     flag=1;
  49.     break;
  50.    }
  51.   }
  52.  }while(flag==1);
  53.  do
  54.  {
  55.   k++;
  56.   acount=0;
  57.   bcount=0;
  58.   printf("guess:");
  59.   for(i=0;i<n;i++)
  60.   scanf("%d",&b[i]);                              //输入测试数据
  61.   for(i=0;i<n;i++)
  62.       for(j=0;j<n;j++)
  63.       {
  64.        if(a[i]==b[i])                                 //位置和数字都相同
  65.        {
  66.         acount++;
  67.         break;
  68.        }
  69.        if(a[i]==b[j]&&i!=j)                      //数字相同,位置不同
  70.        {
  71.         bcount++;
  72.         break;
  73.        }
  74.       }
  75.   printf("clue on:%dA%d B\n\n",acount,bcount);
  76.   if(acount==n)                                    //给出评价
  77.   {
  78.    if(k==1)
  79.    printf("you are the topmose\n");
  80.    else if(k<=5)
  81.    printf("you are genius!\n");
  82.    else if(k<=10)
  83.    printf("you are cleaver!\n");
  84.    else
  85.    printf("you need try hard!\n");
  86.    break;
  87.   }
  88.  }while(1);
  89. }

效果图:

转载于:https://www.cnblogs.com/tuifeideyouran/p/3155682.html

你可能感兴趣的文章
编写高质量代码改善C#程序的157个建议——建议20:使用泛型集合代替非泛型集合...
查看>>
编写高质量代码改善C#程序的157个建议——建议75:警惕线程不会立即启动
查看>>
python-字典的使用
查看>>
[ACM] poj 2249 Binomial Showdown (排列组合公式优化)
查看>>
目前的前端框架有哪些
查看>>
中小企业大数据应用之道:思维在于借力
查看>>
web项目log日志查看分析->流程理解
查看>>
ZOJ 3949 (17th 浙大校赛 B题,树型DP)
查看>>
【ZJOI 2018】线图(树的枚举,hash,dp)
查看>>
System.IO.StreamWriter写文件
查看>>
雷林鹏分享:jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用
查看>>
时间戳和当前时间互相转化
查看>>
iOS 开发 Pch 文件的正确使用
查看>>
mac 上sublime3安装编码插件
查看>>
sql 清空数据库的日志文件
查看>>
数据循环处理重组2
查看>>
[Heoi2013]Alo
查看>>
ML:吴恩达 机器学习 课程笔记(Week7~8)
查看>>
C++编程练习(14)-------“单例模式”的实现
查看>>
Windows10下Anaconda虚拟环境下安装pycocotools
查看>>