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

Method search

app/src/main/java/solver/SkewbFCN.java:93–120  ·  view source on GitHub ↗
(int ct, int cp, int co, int d, int l, int[] seq)

Source from the content-addressed store, hash-verified

91 private static String[] turn = {"R", "U", "L", "B"};
92 private static String[] suff = {"'", ""};
93 private static boolean search(int ct, int cp, int co, int d, int l, int[] seq) {
94 if (d == 0) return ct == 0 && co == 0 && cp == 0;
95 if (ctd[ct] > d || cd[co * 36 + cp] > d) return false;
96 if (l == -2) {
97 int n = r.nextInt(8);
98 int k = n / 2;
99 n %= 2;
100 int p = ct, q = cp, r = co;
101 for (int m = 0; m <= n; m++) {
102 p = ctm[p][k]; q = cpm[q][k]; r = com[r][k];
103 }
104 if (search(p, q, r, d-1, k, seq)) {
105 seq[d] = k << 1 | n;
106 return true;
107 }
108 } else for (int k = 0; k < 4; k++)
109 if (k != l) {
110 int p = ct, q = cp, r = co;
111 for (int m = 0; m < 2; m++) {
112 p = ctm[p][k]; q = cpm[q][k]; r = com[r][k];
113 if (search(p, q, r, d-1, k, seq)) {
114 seq[d] = k << 1 | m;
115 return true;
116 }
117 }
118 }
119 return false;
120 }
121
122 public static String scramble() {
123 int ct = r.nextInt(360), cp, co;

Callers 1

scrambleMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected