1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
int transformation[(2*19 - 1) * (2*19 - 1)][8];
const int transformation2[8][2][2] = {
{{1, 0}, {0, 1}},
{{0, 1}, {-1, 0}},
{{-1, 0}, {0, -1}},
{{0, -1}, {1, 0}},
{{0, -1}, {-1, 0}},
{{-1, 0}, {0, 1}},
{{0, 1}, {1, 0}},
{{1, 0}, {0, -1}}
};
void
transformation_init (void)
{
int k;
int dx;
int dy;
for (k = 0; k < 8; k++)
{
for (dy = -19 + 1; dy <= 19 - 1; dy++)
{
for (dx = -19 + 1; dx <= 19 - 1; dx++)
{
int tx;
int ty;
do
{
*&tx =
transformation2[k][0][0] * (dx) +
transformation2[k][0][1] * (dy);
*&ty =
transformation2[k][1][0] * (dx) +
transformation2[k][1][1] * (dy);
}
while (0);
transformation[((dy + 19 - 1) * (2 * 19 - 1) +
(dx + 19 - 1))][k] = ((tx) * (19 + 1) + (ty));
}
}
}
}
|