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

Class HalfTurn

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

Source from the content-addressed store, hash-verified

7import static solver.Utils.swap;
8
9public class HalfTurn {
10 private static short[][] cpm = new short[24][6];
11 private static short[][][] epm = new short[3][24][6];
12 private static byte[] cpd = new byte[24 * 24];
13 private static byte[][][] epd = new byte[24][24][24];
14 private static int[] seq = new int[21];
15
16 static {
17 int[] temp = new int[4];
18 for (int i = 0; i < 24; i++) {
19 for (int j = 0; j < 6; j++) {
20 Utils.idxToPerm(temp, i, 4, false);
21 switch (j) {
22 case 0: swap(temp, 0, 1); break;
23 case 1: swap(temp, 2, 3); break;
24 case 2: swap(temp, 0, 2); break;
25 case 3: swap(temp, 1, 3); break;
26 case 4: swap(temp, 1, 2); break;
27 case 5: swap(temp, 0, 3); break;
28 }
29 cpm[i][j] = (byte) Utils.permToIdx(temp, 4, false);
30 Utils.idxToPerm(temp, i, 4, false);
31 switch (j) {
32 case 0: swap(temp, 0, 1); break;
33 case 1: swap(temp, 2, 3); break;
34 case 2: swap(temp, 0, 3); break;
35 case 3: swap(temp, 1, 2); break;
36 }
37 epm[0][i][j] = (byte) Utils.permToIdx(temp, 4, false);
38 Utils.idxToPerm(temp, i, 4, false);
39 switch (j) {
40 case 0: swap(temp, 0, 1); break;
41 case 1: swap(temp, 2, 3); break;
42 case 4: swap(temp, 0, 3); break;
43 case 5: swap(temp, 1, 2); break;
44 }
45 epm[1][i][j] = (byte) Utils.permToIdx(temp, 4, false);
46 Utils.idxToPerm(temp, i, 4, false);
47 switch (j) {
48 case 2: swap(temp, 0, 3); break;
49 case 3: swap(temp, 1, 2); break;
50 case 4: swap(temp, 0, 1); break;
51 case 5: swap(temp, 2, 3); break;
52 }
53 epm[2][i][j] = (byte) Utils.permToIdx(temp, 4, false);
54 }
55 }
56 for (int i = 1; i < 576; i++) cpd[i] = -1;
57 cpd[0] = 0;
58 Utils.createPrun(cpd, 3, cpm, cpm, 1);
59 for (int i = 0; i < 24; i++)
60 for (int j = 0; j < 24; j++)
61 for (int k = 0; k < 24; k++)
62 epd[i][j][k] = -1;
63 epd[0][0][0] = 0;
64 int c = 1;
65 for (int d = 0; d < 8; d++) {
66 //c = 0;

Callers

nothing calls this directly

Calls 4

idxToPermMethod · 0.95
permToIdxMethod · 0.95
createPrunMethod · 0.95
swapMethod · 0.45

Tested by

no test coverage detected