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