能力值:
( LV12,RANK:403 )
|
-
-
26 楼
代码见下面,有点乱,当时随手写的,没什么讲究。
// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
int t[6][18][3] =
{
{
{ 0, 0, 0 },
{ 0, 0, 1 },
{ 0, 1, 0 },
{ 0, 1, 1 },
{ 0, 2, 0 },
{ 0, 2, 1 },
{ 1, 0, 0 },
{ 1, 0, 1 },
{ 1, 1, 0 },
{ 1, 1, 1 },
{ 1, 2, 0 },
{ 1, 2, 1 },
{ 2, 0, 0 },
{ 2, 0, 1 },
{ 2, 1, 0 },
{ 2, 1, 1 },
{ 2, 2, 0 },
{ 2, 2, 1 }
}
,
{
{-1, 0, 1 },
{-1, 1, 0 },
{-1, 1, 1 },
{-1, 2, 0 },
{-1, 2, 1 },
{-1, 3, 0 },
{-2, 1, 1 },
{-2, 2, 0 },
{-2, 2, 1 },
{-2, 3, 0 },
{-2, 3, 1 },
{-2, 4, 0 },
{-3, 2, 1 },
{-3, 3, 0 },
{-3, 3, 1 },
{-3, 4, 0 },
{-3, 4, 1 },
{-3, 5, 0 }
}
,
{
{-1, 0, 0 },
{-2, 0, 1 },
{-2, 1, 0 },
{-3, 1, 1 },
{-3, 2, 0 },
{-4, 2, 1 },
{-2, 0, 0 },
{-3, 0, 1 },
{-3, 1, 0 },
{-4, 1, 1 },
{-4, 2, 0 },
{-5, 2, 1 },
{-3, 0, 0 },
{-4, 0, 1 },
{-4, 1, 0 },
{-5, 1, 1 },
{-5, 2, 0 },
{-6, 2, 1 }
}
,
{
{-1,-1, 1 },
{-1,-1, 0 },
{-2,-1, 1 },
{-2,-1, 0 },
{-3,-1, 1 },
{-3,-1, 0 },
{-1,-2, 1 },
{-1,-2, 0 },
{-2,-2, 1 },
{-2,-2, 0 },
{-3,-2, 1 },
{-3,-2, 0 },
{-1,-3, 1 },
{-1,-3, 0 },
{-2,-3, 1 },
{-2,-3, 0 },
{-3,-3, 1 },
{-3,-3, 0 }
}
,
{
{ 0,-1, 0 },
{ 0,-2, 1 },
{ 0,-2, 0 },
{ 0,-3, 1 },
{ 0,-3, 0 },
{ 0,-4, 1 },
{ 1,-2, 0 },
{ 1,-3, 1 },
{ 1,-3, 0 },
{ 1,-4, 1 },
{ 1,-4, 0 },
{ 1,-5, 1 },
{ 2,-3, 0 },
{ 2,-4, 1 },
{ 2,-4, 0 },
{ 2,-5, 1 },
{ 2,-5, 0 },
{ 2,-6, 1 }
}
,
{
{ 0,-1, 1 },
{ 1,-1, 0 },
{ 1,-2, 1 },
{ 2,-2, 0 },
{ 2,-3, 1 },
{ 3,-3, 0 },
{ 1,-1, 1 },
{ 2,-1, 0 },
{ 2,-2, 1 },
{ 3,-2, 0 },
{ 3,-3, 1 },
{ 4,-3, 0 },
{ 2,-1, 1 },
{ 3,-1, 0 },
{ 3,-2, 1 },
{ 4,-2, 0 },
{ 4,-3, 1 },
{ 5,-3, 0 }
}
};
int b[12][6][3] =
{
{
{0, 0, 1},
{1, 0, 0},
{1, 0, 1},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0}
},
{
{1, 0, 0},
{1, 0, 1},
{2, 0, 0},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1}
},
{
{2, 0, 1},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1},
{2, 1, 0}
},
{
{1, 0, 0},
{1, 0, 1},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1}
},
{
{0, 0, 0},
{0, 0, 1},
{1, 0, 0},
{1, 0, 1},
{0, 1, 1},
{1, 1, 0}
},
{
{0, 0, 0},
{0, 0, 1},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1}
},
{
{1, 0, 0},
{1, 0, 1},
{2, 0, 0},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0}
},
{
{1, 0, 1},
{2, 0, 0},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1}
},
{
{1, 0, 1},
{2, 0, 0},
{2, 0, 1},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0}
},
{
{1, 0, 1},
{0, 1, 0},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1},
{2, 1, 0}
},
{
{1, 0, 1},
{0, 1, 1},
{1, 1, 0},
{1, 1, 1},
{2, 1, 0},
{2, 1, 1}
},
{
{0, 0, 0},
{0, 0, 1},
{1, 0, 0},
{1, 0, 1},
{2, 0, 0},
{2, 0, 1}
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int i, j, k, x, y;
int z[6][3];
for(i=0; i<12; i++)
{
for(j=0; j<6; j++) for(k=0; k<3; k++) z[j][k] = b[i][j][k];
printf("{");
for(j=0; j<6; j++)
{
printf(" 0x%06X", (z[j][0]<<16)|(z[j][1]<<8)|z[j][2]);
if (j<5) printf(",");
}
printf("},\n");
for(j=1; j<6; j++)
{
x = 20; y = 20;
for(k=0; k<6; k++)
{
z[k][0] = t[j][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][0];
z[k][1] = t[j][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][1];
z[k][2] = t[j][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][2];
if (z[k][0] < x) x = z[k][0];
if (z[k][1] < y) y = z[k][1];
}
for(k=0; k<6; k++)
{
z[k][0] -= x;
z[k][1] -= y;
}
printf("{");
for(k=0; k<6; k++)
{
printf(" 0x%06X", (z[k][0]<<16)|(z[k][1]<<8)|z[k][2]);
if (k<5) printf(",");
}
printf("},\n");
}
x = 20; y = 20;
for(k=0; k<6; k++)
{
z[k][0] = t[0][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][0];
z[k][1] = t[0][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][1];
z[k][2] = t[0][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][2];
if (z[k][0] < x) x = z[k][0];
if (z[k][1] < y) y = z[k][1];
}
for(k=0; k<6; k++)
{
z[k][0] -= x;
z[k][1] -= y;
}
printf("{");
for(k=0; k<6; k++)
{
printf(" 0x%06X", (z[k][0]<<16)|(z[k][1]<<8)|z[k][2]);
if (k<5) printf(",");
}
printf("},\n");
for(j=0; j<6; j++) for(k=0; k<3; k++) b[i][j][k] = z[j][k];
for(j=1; j<6; j++)
{
x = 20; y = 20;
for(k=0; k<6; k++)
{
z[k][0] = t[j][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][0];
z[k][1] = t[j][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][1];
z[k][2] = t[j][b[i][k][1]*6+b[i][k][0]*2+b[i][k][2]][2];
if (z[k][0] < x) x = z[k][0];
if (z[k][1] < y) y = z[k][1];
}
for(k=0; k<6; k++)
{
z[k][0] -= x;
z[k][1] -= y;
}
printf("{");
for(k=0; k<6; k++)
{
printf(" 0x%06X", (z[k][0]<<16)|(z[k][1]<<8)|z[k][2]);
if (k<5) printf(",");
}
printf("}");
if (j<5)
printf(",\n");
else
printf("\n\n");
}
}
getchar();
}
|