MCPcopy Index your code
hub / github.com/MeigenChou/DCTimer-Android / Gear

Class Gear

app/src/main/java/solver/Gear.java:5–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3import java.util.Random;
4
5public class Gear {
6 private static short[][] cpm = new short[24][3], epm = new short[24][3], eom = new short[27][3];
7 private static byte[][] pd = new byte[3][576];
8 private static String[] turn = {"U", "R", "F"};
9 private static String[] suff = {"'", "2'", "3'", "4'", "5'", "6", "5", "4", "3", "2", ""};
10 private static int[] seq = new int[8];
11
12 static {
13 int[] arr = new int[4];
14 for (int i = 0; i < 24; i++) {
15 for (int j = 0; j < 3; j++) {
16 Utils.idxToPerm(arr, i, 4, false);
17 Utils.swap(arr, 3, j);
18 cpm[i][j] = (short) Utils.permToIdx(arr, 4, false);
19 }
20 }
21 for (int i = 0; i < 24; i++) {
22 for (int j = 0; j < 3; j++) {
23 Utils.idxToPerm(arr, i, 4, false);
24 switch (j) {
25 case 0: Utils.circle(arr, 0, 3, 2, 1); break;
26 case 1: Utils.swap(arr, 0, 1); break;
27 case 2: Utils.swap(arr, 1, 2); break;
28 }
29 epm[i][j] = (short) Utils.permToIdx(arr, 4, false);
30 }
31 }
32 arr = new int[3];
33 for (int i = 0; i < 27; i++) {
34 for (int j = 0; j < 3; j++) {
35 Utils.idxToOri(arr, i, 3, false);
36 arr[j] = (arr[j] + 1) % 3;
37 eom[i][j] = (short) Utils.oriToIdx(arr, 3, false);
38 }
39 }
40 //int n;
41 for (int i = 0; i < 3; i++) {
42 for (int j = 1; j < 576; j++) pd[i][j] = -1;
43 pd[i][0] = 0;
44 for (int d = 0; d < 5; d++) {
45 //n = 0;
46 for (int j = 0; j < 576; j++)
47 if (pd[i][j] == d)
48 for (int k = 0; k < 3; k++) {
49 int p = j;
50 for (int m = 0; m < 11; m++) {
51 int e = p % 24;
52 p = p / 24;
53 p = cpm[p][k];
54 e = epm[e][(k + i) % 3];
55 p = 24 * p + e;
56 if (pd[i][p] == -1) {
57 pd[i][p] = (byte) (d + 1);
58 //n++;
59 }
60 }
61 }
62 //System.out.println(d+" "+n);

Callers

nothing calls this directly

Calls 6

idxToPermMethod · 0.95
swapMethod · 0.95
permToIdxMethod · 0.95
circleMethod · 0.95
idxToOriMethod · 0.95
oriToIdxMethod · 0.95

Tested by

no test coverage detected