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

Class Cube2Layer

app/src/main/java/solver/Cube2Layer.java:9–215  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7import static solver.Utils.suff;
8
9public class Cube2Layer {
10 private static short[][] cpm3 = new short[210][3];
11 private static short[][] com3 = new short[945][3];
12 private static short[][] cpm4 = new short[840][3];
13 private static short[][] com4 = new short[2835][3];
14 private static byte[] prun3 = new byte[5670];
15 private static byte[] prun4 = new byte[68040];
16 private static int[] seq = new int[8];
17 private static int[][] solved = {
18 {38948, 39758, 40001, 40811, 52702, 53107, 53836, 54241, 66096, 66906, 67149, 67959},
19 {39094, 39447, 40176, 40633, 52488, 53366, 53609, 54351, 66326, 66715, 67444, 67865},
20 {38880, 39742, 39985, 40743, 52718, 53055, 53784, 54257, 66148, 66974, 67217, 68011}
21 };
22
23 private static void init() {
24 for (int i = 0; i < 35; i++) {
25 for (int j = 0; j < 27; j++)
26 for (int k = 0; k < 3; k++) {
27 int d = getmv(i, 3, j, k);
28 int p = d >> 7;
29 com3[i * 27 + j][k] = (short) (p / 6 * 27 + (d & 127));
30 if (j < 6)
31 cpm3[i * 6 + j][k] = (short) p;
32 }
33 for (int j = 0; j < 81; j++)
34 for (int k = 0; k < 3; k++) {
35 int d = getmv(i, 4, j, k);
36 int p = d >> 7;
37 com4[i * 81 + j][k] = (short) (p / 24 * 81 + (d & 127));
38 if (j < 24)
39 cpm4[i * 24 + j][k] = (short) p;
40 }
41 }
42 for (int i = 0; i < 5670; i++) prun3[i] = -1;
43 prun3[0] = prun3[7 * 162] = prun3[14 * 162] = 0;
44 int c = 3;
45 for (int d = 0; d < 6; d++) {
46 //c = 0;
47 for (int i = 0; i < 210; i++)
48 for (int j = 0; j < 27; j++)
49 if (prun3[i * 27 + j] == d)
50 for (int l = 0; l < 3; l++) {
51 int x = i, y = j;
52 for (int m = 0; m < 3; m++) {
53 y = com3[x / 6 * 27 + y % 27][l] % 27;
54 x = cpm3[x][l];
55 if (prun3[x * 27 + y] < 0) {
56 prun3[x * 27 + y] = (byte) (d + 1);
57 c++;
58 }
59 }
60 }
61 Log.w("dct", d+1+"\t"+c);
62 }
63
64 for (int i = 0; i < 68040; i++) prun4[i] = -1;
65 for (int i = 0; i < 3; i++)
66 for (int j = 0; j < 12; j++)

Callers

nothing calls this directly

Calls 1

initMethod · 0.95

Tested by

no test coverage detected