信息概论备份
徐霜晴吧
全部回复
仅看楼主
level 5
#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)

2010年12月14日 09点12分 1
level 5
         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;
}
    

2010年12月14日 09点12分 2
level 5
#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;//检验六中颜色是否都占了九个块//

2010年12月14日 13点12分 3
level 5
     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++)

2010年12月14日 13点12分 4
level 5
         {
             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];

2010年12月14日 13点12分 5
level 5
         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;
}
    

2010年12月14日 13点12分 6
1