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

Method getmv

app/src/main/java/solver/PyraminxV.java:73–106  ·  view source on GitHub ↗
(int c, int p, int o, int f)

Source from the content-addressed store, hash-verified

71 }
72
73 private static int getmv(int c, int p, int o, int f) {
74 int[] n = new int[6], s = new int[2];
75 int q, t;
76 Utils.idxToPerm(s, p, 2, false);
77 idxToComb(n, s, c, o);
78 switch (f) {
79 case 0: //L
80 Utils.circle(n, 1, 5, 2);
81 n[2] ^= 1; n[5] ^= 1;
82 break;
83 case 1: //R
84 Utils.circle(n, 0, 2, 4);
85 n[0] ^= 1; n[2] ^= 1;
86 break;
87 case 2: //B
88 Utils.circle(n, 3, 4, 5);
89 n[3] ^= 1; n[4] ^= 1;
90 break;
91 case 3: //U
92 Utils.circle(n, 0, 3, 1);
93 n[1] ^= 1; n[3] ^= 1;
94 break;
95 }
96 c = o = 0;
97 q = 2;
98 for (t = 0; t < 6; t++)
99 if (n[t] >= 0) {
100 c += Utils.Cnk[5 - t][q--];
101 s[q] = n[t] >> 1;
102 o |= (n[t] & 1) << 1 - q;
103 }
104 int i = Utils.permToIdx(s, 2, false);
105 return 2 * c + i << 2 | o;
106 }
107
108 private static void idxToComb(int[] n, int[] s, int c, int o) {
109 int q = 2;

Callers 1

initMethod · 0.95

Calls 4

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

Tested by

no test coverage detected