关闭

24点游戏代码

655人阅读 评论(0) 收藏 举报

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

double a[24][4];
int b[24][4];
double num1,num2,num3,num4;

void initiala()
{
    a[0][0]=num1;a[0][1]=num2;a[0][2]=num3;a[0][3]=num4;
    a[1][0]=num1;a[1][1]=num2;a[1][2]=num4;a[1][3]=num3;
    a[2][0]=num1;a[2][1]=num3;a[2][2]=num2;a[2][3]=num4;
    a[3][0]=num1;a[3][1]=num3;a[3][2]=num4;a[3][3]=num2;
    a[4][0]=num1;a[4][1]=num4;a[4][2]=num3;a[4][3]=num2;
    a[5][0]=num1;a[5][1]=num4;a[5][2]=num2;a[5][3]=num3;
    
     a[6][0]=num2;a[6][1]=num1;a[6][2]=num3;a[6][3]=num4;
     a[7][0]=num2;a[7][1]=num1;a[7][2]=num4;a[7][3]=num3;
     a[8][0]=num2;a[8][1]=num3;a[8][2]=num1;a[8][3]=num4;
     a[9][0]=num2;a[9][1]=num3;a[9][2]=num4;a[9][3]=num1;    
     a[10][0]=num2;a[10][1]=num4;a[10][2]=num3;a[10][3]=num1;
     a[11][0]=num2;a[11][1]=num4;a[11][2]=num1;a[11][3]=num3;
    
     a[12][0]=num3;a[12][1]=num1;a[12][2]=num2;a[12][3]=num4;
     a[13][0]=num3;a[13][1]=num1;a[13][2]=num4;a[13][3]=num2;
     a[14][0]=num3;a[14][1]=num2;a[14][2]=num1;a[14][3]=num4;
     a[15][0]=num3;a[15][1]=num2;a[15][2]=num4;a[15][3]=num1;   
     a[16][0]=num3;a[16][1]=num4;a[16][2]=num3;a[16][3]=num1;
     a[17][0]=num3;a[17][1]=num4;a[17][2]=num1;a[17][3]=num3;
    
     a[18][0]=num4;a[18][1]=num1;a[18][2]=num3;a[18][3]=num2;
     a[19][0]=num4;a[19][1]=num1;a[19][2]=num2;a[19][3]=num3;   
     a[20][0]=num4;a[20][1]=num2;a[20][2]=num3;a[20][3]=num1;
     a[21][0]=num4;a[21][1]=num2;a[21][2]=num1;a[21][3]=num3;
     a[22][0]=num4;a[22][1]=num3;a[22][2]=num1;a[22][3]=num2;
     a[23][0]=num4;a[23][1]=num3;a[23][2]=num2;a[23][3]=num1;    
         
}

 

void main()
{
 int i=0;
 int j=0;
 int k=0;
 int m=0;
 bool flag=false;
    double mid1,mid2,mid3;
 cout<<"输入四个数,以空格隔开(如2 7 7 10):";
 cin>>num1>>num2>>num3>>num4;
 initiala();

 for(i=0;i<24;i++)
 {
  num1=a[i][0];num2=a[i][1];num3=a[i][2];num4=a[i][3];
  for(j=1;j<5;j++)
  {
   switch(j)
   {
    case 1: mid1=num1+num2;break;
    case 2: mid1=num1-num2;break;
    case 3: mid1=num1*num2;break;
    case 4: mid1=num1/num2;break;
    default: goto loop;    
   }
   for(k=1;k<5;k++)
   {
     switch(k)
     {
         case 1: mid2=num3+mid1;break;
       case 2: mid2=mid1-num3;break;
       case 3: mid2=num3*mid1;break;
       case 4: mid2=mid1/num3;break;
        default: goto loop;    
     }
    for(m=1;m<5;m++)
    {
        switch(m)
        {
       case 1: mid3=mid2+num4;break;
          case 2: mid3=mid2-num4;break; 
          case 3: mid3=mid2*num4;break;
          case 4: mid3=mid2/num4;break;
        default: goto loop;   
        }
      if(mid3==24||mid3==-24)
       {
                 flag=true;
          goto loop;  
       }
      if((mid3==1.0/24||mid3==-1.0/24)&&m==4)
       {
                 flag=true;
          goto loop;  
       }
     }//form
   }//fork
   
  }//forj 
 }//fori
 cout<<"Second monthd"<<endl;
for(i=0;i<24;i++)        //////////////num1,num2****num3,num4
 {
     num1=a[i][0];num2=a[i][1];num3=a[i][2];num4=a[i][3];
  for(j=1;j<5;j++)
  {
   switch(j)
   {
    case 1: mid1=num1+num2;break;
    case 2: mid1=num1-num2;break;
    case 3: mid1=num1*num2;break;
    case 4: mid1=num1/num2;break;
    default: goto loop;    
   }
   for(k=1;k<5;k++)
   {
     switch(k)
     {
       case 1: mid2=num3+num4;break;
       case 2: mid2=num4-num3;break;
       case 3: mid2=num3*num4;break;
       case 4: mid2=num4/num3;break;
        default: goto loop;    
     }
    for(m=1;m<5;m++)
    {
        switch(m)
        {
       case 1: mid3=mid2+mid1;break;
          case 2: mid3=mid2-mid1;break; 
          case 3: mid3=mid2*mid1;break;
          case 4: mid3=mid2/mid1;break;
        default: goto loop;   
        }
      if(mid3==24||mid3==-24)
       {
                 flag=true;
          goto loop1;  
       }
      if((mid3==1.0/24||mid3==-1.0/24)&&m==4)
       {
                 flag=true;
          goto loop1;  
       }
     }//form
   }//fork
   
  }//forj 
 }//fori

 

loop:        //first.
 if(!flag)
  cout<<"failed!"<<endl;
 else
 {
  if(mid3==24||mid3==-24)
  {
  cout<<"/n答案是:((";
  cout<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<a[i][2]<<")";
   switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][3]<<endl;
   getchar();
  }
  else/////////////////////////////////////////////1/24/////////////////////
  {
  cout<<"/n答案是:";
  cout<<a[i][3];

     switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }

  cout<<"(("<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<a[i][2]<<")"<<endl;
  
   
   getchar();
  }
  
 }
 loop1: ////////////////second ////////////////////////
     if(flag)
  {
      if(mid3==24||mid3==-24)
  {
  cout<<"/n答案是:(";
  cout<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<"("<<a[i][2];
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][3]<<")"<<endl;
   getchar();
  }
  else/////////////////////////////////////////////1/24/////////////////////
  {
  cout<<"/n答案是:";
  cout<<a[i][3];

     switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }

  cout<<"(("<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<a[i][2]<<")"<<endl;
  
   
   getchar();
  }
  
  }
 getchar();
  
}

         

 

 

            

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:42057次
    • 积分:572
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:35篇
    • 译文:0篇
    • 评论:16条
    文章分类
    最新评论
    编程