()
| 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 |
no test coverage detected