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

Method init

app/src/main/java/solver/RTower.java:21–75  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

19
20 private static boolean ini = false;
21 public static void init() {
22 if (ini) return;
23 Tower.init();
24 int[] arr = new int[8];
25 /* 0 1
26 * 3 2
27 *
28 * 4 5
29 * - 6
30 */
31 for (int i = 0; i < 5040; i++) {
32 for (int j = 0; j < 3; j++) {
33 Utils.set8Perm(arr, 7, i);
34 switch (j) {
35 case 0: Utils.circle(arr, 0, 3, 2, 1); break; //Uw
36 case 1: Utils.circle(arr, 1, 2, 5, 6); break; //R
37 case 2: Utils.circle(arr, 2, 3, 4, 5); break; //F
38 }
39 epm[i][j] = (short) Utils.get8Perm(arr, 7);
40 }
41 }
42 for (int i = 0; i < 729; i++) {
43 for (int j = 0; j < 3; j++) {
44 Utils.idxToOri(arr, i, 7, true);
45 switch (j) {
46 case 0: Utils.circle(arr, 0, 3, 2, 1); break; //Uw
47 case 1: Utils.circle(arr, 1, 2, 5, 6, new int[] {2, 1, 2, 1});
48 //arr[1] += 2; arr[2]++; arr[5] += 2; arr[6]++;
49 break; //R
50 case 2:Utils.circle(arr, 2, 3, 4, 5, new int[] {2, 1, 2, 1});
51 //arr[2] += 2; arr[3]++; arr[4] += 2; arr[5]++;
52 break; //F
53 }
54 eom[i][j] = (short) Utils.oriToIdx(arr, 7, true);
55 }
56 }
57
58 int n = 1;
59 epd[0] = 0;
60 for (int i = 1; i < 5040; i++) {
61 Utils.set8Perm(arr, 7, i);
62 if (checkEp1(arr)) {
63 epd[i] = 0;
64 n++;
65 }
66 else epd[i] = -1;
67 }
68 //System.out.println("0 "+n);
69 Utils.createPrun(epd, 4, epm, 3);
70
71 for (int i = 1; i < 729; i++) eod[i] = -1;
72 eod[0] = 0;
73 Utils.createPrun(eod, 6, eom, 3);
74 ini = true;
75 }
76
77 private static boolean checkEp1(int[] arr) {
78 if (arr[0] != 0) return false;

Callers 1

scrambleMethod · 0.95

Calls 8

initMethod · 0.95
set8PermMethod · 0.95
circleMethod · 0.95
get8PermMethod · 0.95
idxToOriMethod · 0.95
oriToIdxMethod · 0.95
checkEp1Method · 0.95
createPrunMethod · 0.95

Tested by

no test coverage detected