一个猜数字的游戏(源代码)

    技术2022-05-11  19

      一个猜数字的游戏的源代码

    由计算机“想”一个无重复四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止

    #include <stdio.h>#include <math.h>#include <stdlib.h>#include<time.h>  int Rnd()                                      //产生十以内的随机整数。{   int Rteger;   Rteger=rand();   return Rteger;} void Get_b(int b[])                            //得到用户输入的四位数,存储到数组b[4]中。{    int i, m,n=10000;   scanf("%d",&m);   for(i=0;i<=3;i++)   {      b[i]=m/(n/10);      m=m-b[i]*(n/10);      n=n/10;   }}   void Iswantplay(char * wantplay)               //判断用户还想不想玩。{    printf("再来一局(y),我不想玩了(n)");    scanf("%c",wantplay);    scanf("%c",wantplay);    printf("======================================================/n/n/n");} void Reset(int A[],int B[],int * score,int * a,int * b)                       //用来初始化一些变量。{    int i=0,t=0, j;    (*score)=0;                                                               //得分清零。    (*a)=0;                                                  (*b)=0;                                                                   //所猜对的数字的个数的计数器清零      for(j=0;j<10;j++)       A[j]=j;                                                                //初始化数组,为产生无重复随机数做准备。     while(i<4)    {           t=Rnd();       if(A[t]) B[i]=A[t],A[t]=0,i++;                  }                                                     //利用扑克牌中抽牌的思想,来产                                                          //生无重复随机数,存储到B[](在main函数中为b[])中。    printf("输入一个四位数 开始吧! /n");    printf("-----------------------------/n");} void Check_ab(int a[],int b[],int * A,int * B)            //此函数用来检查用户所输入的四位数与系{                                                         //统产生的四位数的相同情况。    int i,j;    for(i=0;i<=3;i++)                                     //用两个嵌套的for循环来逐个比较a[]与b[] {       for(j=0;j<=3;j++)    {           if(a[i]==b[j])                                 //如果数字相同。     {               if(i==j)                                   //如果位置也相同。                 (*A)++;                                  //A自加。               if(!(i==j))                                //如果位置不同。                 (*B)++;                                  //B自加。                               }                                     }    }} void Welcome()                                            //打印程序的开始界面。{     printf("   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/n");     printf("   @              -----------------                      @/n");              printf("   @      ===================猜数字游戏==============             @/n");     printf("   @               -----------------                        @/n");     printf("   @                                ----programed by Star621       @/n");     printf("   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/n/n/n/n");} void Usage()                                              //显示程序的用法。{     printf("===============用法================================ /n");     printf("   1.计算机随机产生一个无重复数字的四位数由你来猜./n");     printf("   2.若所猜的数位置与数字均正确,会显示一个A,若数字对位置不对,会显示一个B./n");     printf("===========================================================================/n/n"); } void Printscore(int n)                                    //显示用户的得分。{     switch(n)     {       case 0: printf("你真是撞大运了!! 恭喜!! 恭喜!!  加十分!/n");break;       case 1: printf("恭喜你 !猜对了! 你真是天才! 加九分!/n");break;       case 2: printf("不错! 不错! 猜对了! 你真够聪明! 加八分!/n");break;       case 3: printf("恭喜! 猜对了!  加七分!/n");break;       case 4: printf("猜对了! 及格. 加六分!/n");       default : printf("猜对了,但不够快啊,继续努力!/n");}       printf("=========================================================/n/n"); } void Printresult(int b[],int * A,int * B)                  //显示每次用户所猜的结果,供其思考判断。{     int i;     printf("              ");      for(i=0;i<=3;i++)     {         printf("%d",b[i]);     }      printf("       ");      for(i=0;i<(*A);i++)        printf("A");     for(i=0;i<(*B);i++)        printf("B");     printf("/n");} void main(){      int i=0,a[4],b[4],c[10],A=0,B=0,score=0;     char wantplay='y';     srand((unsigned int)time(NULL));                                 //初始化随机数生成器。     Welcome();     Usage();     while(wantplay=='y'||wantplay=='Y')                              //如果还想玩。  {          Reset(c,a,&score,&A,&B);                                    //初始化变量。            while(A!=4)                                                 //只要还没猜对,继续猜。          {                Get_b(b);                                             //输入所猜的数。                 Check_ab(a,b,&A,&B);                                  //电脑判断。                Printresult(b,&A,&B);                                 //输出结果。                if(A!=4) A=0,B=0;                   score++;                                           //累计用户总共猜的次数。          }          Printscore(score/3);                                        //打印得分。          Iswantplay(&wantplay);                                      //还要不要玩。                                } }   一个猜数字的游戏的源代码

    最新回复(0)