MCPcopy Create free account
hub / github.com/MeigenChou/DCTimer-Android / initr

Method initr

app/src/main/java/solver/Roux.java:31–87  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

29 private static boolean ini2 = false;
30
31 private static void initr() {
32 if (ini1) return;
33 Petrus.init();
34 int i, j;
35 for (i = 0; i < 28; i++)
36 for (j = 0; j < 9; j++)
37 for (int k = 0; k < 6; k++) {
38 int d = cornmv(i, j, k);
39 if (j < 2) cpm[i << 1 | j][k] = (byte) (d / 9);
40 com[i * 9 + j][k] = (short) (d / 18 * 9 + d % 9);
41 }
42
43 for (i = 0; i < 10560; i++) ed[i] = -1;
44
45 ed[12 * 48] = 0;
46 int c = 1;
47 for (int d = 0; d < 7; d++) {
48 //c = 0;
49 for (i = 0; i < 1320; i++)
50 for (j = 0; j < 8; j++)
51 if (ed[i << 3 | j] == d)
52 for (int l = 0; l < 6; l++) {
53 int x = i, y = j;
54 for (int m = 0; m < 3; m++) {
55 y = Petrus.eom[(x / 6) << 3 | y & 7][l] & 7;
56 x = Petrus.epm[x][l];
57 if (ed[x << 3 | y] < 0) {
58 ed[x << 3 | y] = (byte) (d + 1);
59 c++;
60 }
61 }
62 }
63 //Log.w("dct", d+1+"\t"+c);
64 }
65 for (i = 0; i < 504; i++) cd[i] = -1;
66 cd[25 * 18] = 0;
67 c = 1;
68 for (int d = 0; d < 4; d++) {
69 //c = 0;
70 for (i = 0; i < 56; i++)
71 for (j = 0; j < 9; j++)
72 if (cd[i * 9 + j] == d)
73 for (int l = 0; l < 6; l++) {
74 int x = i, y = j;
75 for (int m = 0; m < 3; m++) {
76 y = com[x / 2 * 9 + y % 9][l] % 9;
77 x = cpm[x][l];
78 if (cd[x * 9 + y] < 0) {
79 cd[x * 9 + y] = (byte) (d + 1);
80 c++;
81 }
82 }
83 }
84 //Log.w("dct", d+1+"\t"+c);
85 }
86 ini1 = true;
87 }
88

Callers 1

solveRoux1Method · 0.95

Calls 2

initMethod · 0.95
cornmvMethod · 0.95

Tested by

no test coverage detected