Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

108 lines
1.7 KiB

/* Tables to generate Tables */
/* Each row of rgChk contains the positions for a line (tictactoe)
Each row of rgtbl contains a set of data to generate a sequence of lines.
Normally a set of data contains cBlkRow lines, but -1 indicates only 1 line.
*/
#define iposStart 0 /* Starting Position */
#define iposOff 1 /* Offset between positions in a line */
#define iposLine 2 /* Offset to first position in next line */
#define i3x3 0
#define i3x3x3 4
#define i4x4x4 23
#define c3x3 4
#define c3x3x3 19
#define c4x4x4 22
#define k3x3 8
#define k3x3x3 49
#define k4x4x4 76
BYTE rgtbl[c3x3 + c3x3x3 + c4x4x4][3] = {
/*** 3 x 3 = 9 ***/
{0, 1, 1},
{0, 3, 4},
{0, 4, -1},
{2, 2, -1},
/*** 3 x 3 x 3 = 27 ***/
{ 0, 1, 1}, /* X Plane */
{ 9, 1, 1},
{18, 1, 1},
{ 0, 3, 22}, /* Y Plane */
{ 9, 3, 22},
{18, 3, 22},
{ 0, 9, 12}, /* Z Plane */
{ 1, 9, 12},
{ 2, 9, 12},
{ 0, 4, 1}, /* X Diagonal */
{ 2, 2, 5},
{ 0, 10, 10}, /* Y Diagonal */
{ 2, 8, 14},
{ 0, 12, 4}, /* Z Diagonal */
{ 6, 6, 16},
{ 0, 13, -1}, /* Through Center */
{ 2, 11, -1},
{ 6, 7, -1},
{ 8, 5, -1},
/*** 4 x 4 x 4 = 64 ***/
{ 0, 1, 1}, /* X Plane */
{16, 1, 1},
{32, 1, 1},
{48, 1, 1},
{ 0, 4, 53}, /* Y Plane */
{16, 4, 53},
{32, 4, 53},
{48, 4, 53},
{ 0, 16, 20}, /* Z Plane */
{ 1, 16, 20},
{ 2, 16, 20},
{ 3, 16, 20},
{ 0, 17, 17}, /* X Diagonal */
{ 3, 15, 23},
{ 0, 20, 5}, /* Y Diagonal */
{12, 12, 29},
{ 0, 5, 1}, /* Z Diagonal */
{ 3, 3, 7},
{ 0, 21, -1}, /* Through center */
{ 3, 19, -1},
{12, 13, -1},
{15, 11, -1},
};
POS rgCorner[3][8] = {
{0, 2, 6, 8, 0, 2, 6, 8},
{0, 2, 6, 8, 18, 20, 24, 26},
{0, 3, 12, 15, 48, 51, 60, 63}
};