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

Method getEpm

app/src/main/java/solver/EOline.java:34–63  ·  view source on GitHub ↗
(int eci, int epi, int k)

Source from the content-addressed store, hash-verified

32 }
33
34 private static int getEpm(int eci, int epi, int k) {
35 int[] combination = new int[12];
36 Utils.idxToComb(combination, eci, 2, 12);
37 int[] permutation = new int[2];
38 Utils.idxToPerm(permutation, epi, 2, false);
39 byte[] selectedEdges = {8, 10};
40 int next = 0;
41 int[] ep = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
42 for (int i = 0; i < 12; i++)
43 if (combination[i] != 0) ep[i] = selectedEdges[permutation[next++]];
44 switch (k) {
45 case 0: Utils.circle(ep, 4, 7, 6, 5); break;
46 case 1: Utils.circle(ep, 8, 9, 10, 11); break;
47 case 2: Utils.circle(ep, 7, 3, 11, 2); break;
48 case 3: Utils.circle(ep, 5, 1, 9, 0); break;
49 case 4: Utils.circle(ep, 6, 2, 10, 1); break;
50 case 5: Utils.circle(ep, 4, 0, 8, 3); break;
51 }
52 byte[] edgesMapping = {0, 1, 2, 3};
53 int[] ec = new int[12];
54 for (int i = 0; i < 12; i++)
55 ec[i] = ep[i] > 0 ? 1 : 0;
56 eci = Utils.combToIdx(ec, 2, 12);
57 int[] edgesPermutation = new int[2];
58 next = 0;
59 for (int i = 0; i < 12; i++)
60 if (ec[i] != 0) edgesPermutation[next++] = ep[i] > -1 ? edgesMapping[ep[i] - 8] : -1;
61 epi = Utils.permToIdx(edgesPermutation, 2, false);
62 return eci * 2 + epi;
63 }
64
65 private static String[] sideStr = {"DF DB", "DL DR", "UF UB", "UL UR",
66 "LF LB", "LU LD", "RF RB", "RU RD", "FU FD", "FL FR", "BU BD", "BL BR"};

Callers 1

EOlineClass · 0.95

Calls 5

idxToCombMethod · 0.95
idxToPermMethod · 0.95
circleMethod · 0.95
combToIdxMethod · 0.95
permToIdxMethod · 0.95

Tested by

no test coverage detected