徐霜晴吧 关注:0贴子:128
  • 5回复贴,共1

信息概论备份

只看楼主收藏回复

#include <iostream>
using namespace std;
int f[3][3];
int u[3][3];
int d[3][3];
int l[3][3];
int r[3][3];
int b[3][3];
int cf[3][3];
int cu[3][3];
int cd[3][3];
int cl[3][3];
int cr[3][3];
int cb[3][3];
//f-front;u-up;d-down;l-left;r-right;b-back;//
//c-copy,在颜色交换时用//
//anticlockwise 逆时针的//
void input_data()//输入六面颜色数据
{
     int i=0,j=0;
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
             cin>>f[i][j];
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
             cin>>u[i][j];
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
             cin>>d[i][j];
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
             cin>>l[i][j];
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
             cin>>r[i][j];
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
             cin>>b[i][j];
}
bool check_input_data()
{
     int c[7];
     int i=0,j=0;
     for(i=1;i<=6;i++)
         c[i]=0;
     for(i=0;i<3;i++)
         for(j=0;j<3;j++)
         {
             c[f[i][j]]++;
             c[u[i][j]]++;
             c[d[i][j]]++;
             c[l[i][j]]++;
             c[r[i][j]]++;
             c[b[i][j]]++;
         }
     for(i=1;i<=6;i++)
         if(c[i]!=9)
             return false;//检验六中颜色是否都占了九个块//
     if(f[1][1]*u[1][1]*d[1][1]*l[1][1]*r[1][1]*b[1][1]!=720||f[1][1]+u[1][1]+d[1][1]+l[1][1]+r[1][1]+b[1][1]!=21)



1楼2010-12-14 17:41回复
             return false;//检验六个面中心块是否分别拥有六个颜色//
         //这中间应该还有一些工作要做//
         return true;
    }
    void copy_input()
    {
         int i=0,j=0;
         for(i=0;i<3;i++)
             for(j=0;j<3;j++)
                 cf[i][j]=f[i][j];
         for(i=0;i<3;i++)
             for(j=0;j<3;j++)
                 cu[i][j]=u[i][j];
         for(i=0;i<3;i++)
             for(j=0;j<3;j++)
                 cd[i][j]=d[i][j];
         for(i=0;i<3;i++)
             for(j=0;j<3;j++)
                 cl[i][j]=l[i][j];
         for(i=0;i<3;i++)
             for(j=0;j<3;j++)
                 cr[i][j]=r[i][j];
         for(i=0;i<3;i++)
             for(j=0;j<3;j++)
                 cb[i][j]=b[i][j];
    }
    void anti_clock_u()
    void clock_u()
    void anti_clock_d()
    void clock_d()
    void up_l()
    void down_l()
    void up_r()
    void down_r()
    void anti_clock_f()
    void clock_f()
    void anti_clock_b()
    void clock_b()
    //编完这十二个函数我要死了//
    int main()
    {
         input_data();
         cout<<check_input_data();
         return 0;
    }
        
    


    2楼2010-12-14 17:41
    回复
      2026-03-01 21:40:59
      广告
      不感兴趣
      开通SVIP免广告
      #include <iostream>
      #include<fstream>
      using namespace std;
      int f[3][3];
      int u[3][3];
      int d[3][3];
      int l[3][3];
      int r[3][3];
      int b[3][3];
      int cf[3][3];
      int cu[3][3];
      int cd[3][3];
      int cl[3][3];
      int cr[3][3];
      int cb[3][3];
      //f-front;u-up;d-down;l-left;r-right;b-back;//
      //c-copy,在颜色交换时用//
      //anticlockwise 逆时针的//
      void input_data()//输入六面颜色数据
      {
           ifstream fin;
           fin.open("a.txt");
           int i=0,j=0;
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
                   fin>>f[i][j];
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
                   fin>>u[i][j];
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
                   fin>>d[i][j];
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
                   fin>>l[i][j];
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
                   fin>>r[i][j];
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
                   fin>>b[i][j];
           fin.close();
      }
      bool check_input_data()
      {
           int c[7];
           int i=0,j=0;
           for(i=1;i<=6;i++)
               c[i]=0;
           for(i=0;i<3;i++)
               for(j=0;j<3;j++)
               {
                   c[f[i][j]]++;
                   c[u[i][j]]++;
                   c[d[i][j]]++;
                   c[l[i][j]]++;
                   c[r[i][j]]++;
                   c[b[i][j]]++;
               }
           for(i=1;i<=6;i++)
               if(c[i]!=9)
                   return false;//检验六中颜色是否都占了九个块//
      


      3楼2010-12-14 21:37
      回复
             if(f[1][1]*u[1][1]*d[1][1]*l[1][1]*r[1][1]*b[1][1]!=720||f[1][1]+u[1][1]+d[1][1]+l[1][1]+r[1][1]+b[1][1]!=21)
                 return false;//检验六个面中心块是否分别拥有六个颜色//
             //这中间应该还有一些工作要做//
             return true;
        }
        void copy_input()
        {
             int i=0,j=0;
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                     cf[i][j]=f[i][j];
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                     cu[i][j]=u[i][j];
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                     cd[i][j]=d[i][j];
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                     cl[i][j]=l[i][j];
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                     cr[i][j]=r[i][j];
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                     cb[i][j]=b[i][j];
        }
        void anti_clock_u()
        {
             int i,j;
             for(i=0;i<3;i++)
             {
                 f[0][i]=cl[0][i];
                 r[0][i]=cf[0][i];
                 b[0][i]=cr[0][i];
                 l[0][i]=cb[0][i];
             }
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
                 {
                     u[i][j]=cu[j][2-i];
                 }
             copy_input();
        }//上层逆时针转90度
        void clock_u()
        {
             int i,j;
             for(i=0;i<3;i++)
             {
                 f[0][i]=cr[0][i];
                 r[0][i]=cb[0][i];
                 b[0][i]=cl[0][i];
                 l[0][i]=cf[0][i];
             }
             for(i=0;i<3;i++)
                 for(j=0;j<3;j++)
        


        4楼2010-12-14 21:37
        回复
                   {
                       u[i][j]=cu[2-j][i];
                   }
               copy_input();
          }//上层顺时针转90度
          void anti_clock_d()
          {
               int i,j;
               for(i=0;i<3;i++)
               {
                   f[2][i]=cl[2][i];
                   r[2][i]=cf[2][i];
                   b[2][i]=cr[2][i];
                   l[2][i]=cb[2][i];
               }
               for(i=0;i<3;i++)
                   for(j=0;j<3;j++)
                   {
                       d[i][j]=cd[2-j][i];
                   }
               copy_input();
          }//下层逆时针转90度
          void clock_d()
          {
               int i,j;
               for(i=0;i<3;i++)
               {
                   f[2][i]=cr[2][i];
                   r[2][i]=cb[2][i];
                   b[2][i]=cl[2][i];
                   l[2][i]=cf[2][i];
               }
               for(i=0;i<3;i++)
                   for(j=0;j<3;j++)
                   {
                       d[i][j]=cd[j][2-i];
                   }
               copy_input();
          }//下层顺时针转90度
          //编完这十二个函数我要死了//
          void up_l()
          {
               int i,j;
               for(i=0;i<3;i++)
               {
                   f[i][0]=cd[i][0];
                   d[i][0]=cb[2-i][2];
                   b[i][2]=cu[2-i][0];
                   u[i][0]=cf[i][0];
               }
               for(i=0;i<3;i++)
                   for(j=0;j<3;j++)
                   {
                       l[i][j]=cl[j][2-i];
                   }
               copy_input();
          }//左边向上转90度
          void down_l()
          {
               int i,j;
               for(i=0;i<3;i++)
               {
                   f[i][0]=cu[i][0];
                   u[i][0]=cb[2-i][2];
          


          5楼2010-12-14 21:37
          回复
                     b[i][2]=cu[2-i][0];
                     d[i][0]=cf[i][0];
                 }
                 for(i=0;i<3;i++)
                     for(j=0;j<3;j++)
                     {
                         l[i][j]=cl[2-j][i];
                     }
                 copy_input();
            }//左边向下转90度
            void up_r()
            {
                 int i,j;
                 for(i=0;i<3;i++)
                 {
                     f[i][2]=cd[i][2];
                     d[i][2]=cb[2-i][0];
                     b[i][0]=cu[2-i][2];
                     u[i][2]=cf[i][2];
                 }
                 for(i=0;i<3;i++)
                     for(j=0;j<3;j++)
                     {
                         r[i][j]=cl[2-j][i];
                     }
                 copy_input();
            }//右边向上转90度
            void down_r()
            {
                 int i,j;
                 for(i=0;i<3;i++)
                 {
                     f[i][2]=cu[i][2];
                     u[i][2]=cb[2-i][0];
                     b[i][0]=cu[2-i][2];
                     d[i][2]=cf[i][2];
                 }
                 for(i=0;i<3;i++)
                     for(j=0;j<3;j++)
                     {
                         r[i][j]=cr[j][2-i];
                     }
                 copy_input();
            }
            //void anti_clock_f()
            //void clock_f()
            //void anti_clock_b()
            //void clock_b()
            int main()
            {
                 int i,j;
                 input_data();
                 copy_input();
                
                 ofstream fout;
                 fout.open("b.txt");
                 down_r();
                 down_l();
                 for(i=0;i<3;i++)
                 {
                     for(j=0;j<3;j++)
                         fout<<f[i][j]<<" ";
                     fout<<endl;
                 }
                 for(i=0;i<3;i++)
                 {
                     for(j=0;j<3;j++)
                         fout<<u[i][j]<<" ";
                     fout<<endl;
                 }
                 fout.close();
                
                 return 0;
            }
                
            


            6楼2010-12-14 21:37
            回复