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

Method randomEG

app/src/main/java/solver/Cube222.java:235–325  ·  view source on GitHub ↗
(int type, String olls)

Source from the content-addressed store, hash-verified

233 }
234
235 public static void randomEG(int type, String olls) {
236 reset();
237 //整体转动
238 //for (int i = 0; i < 3; i++)
239 doMove(6, r.nextInt(4));
240 //交换底层2块
241 //doMove(3, r.nextInt(4));
242 switch (type) {
243 case 4: //不交换
244 break;
245 case 2: //交换相邻两块
246 swap(4, 6);
247 break;
248 case 1: //交换相对两块
249 swap(5, 6);
250 break;
251 case 6: //不交换或交换相邻块
252 if (r.nextInt(2) == 1)
253 swap(4, 5);
254 break;
255 case 5: //不交换或交换相对块
256 if (r.nextInt(2) == 1)
257 swap(5, 6);
258 break;
259 case 3: //交换任意两块
260 swap(4 + r.nextInt(2), 6);
261 break;
262 default:
263 switch (r.nextInt(3)) {
264 case 0:
265 break;
266 case 1:
267 swap(4, 6);
268 break;
269 case 2:
270 swap(5, 6);
271 break;
272 }
273 break;
274 }
275 //随机顶层
276 for (int i = 0; i < 4; i++) {
277 swap(i, i + r.nextInt(4 - i));
278 }
279 if (olls.equals(""))
280 Utils.idxToOri(state[1], r.nextInt(27), 4, true);
281 else if (olls.equals("X") || olls.equals("PHUTLSA")) {
282 Utils.idxToOri(state[1], r.nextInt(26) + 1, 4, true);
283 } else {
284 char oll = olls.charAt(r.nextInt(olls.length()));
285 switch (oll) {
286 case 'P':
287 twist(0, 2); twist(1, 1); twist(2, 2); twist(3, 1);
288 break;
289 case 'H':
290 twist(0, 2); twist(1, 1); twist(2, 1); twist(3, 2);
291 break;
292 case 'U':

Callers 2

scrambleEGMethod · 0.95
scramblePBLMethod · 0.95

Calls 7

resetMethod · 0.95
doMoveMethod · 0.95
swapMethod · 0.95
idxToOriMethod · 0.95
twistMethod · 0.95
lengthMethod · 0.80
equalsMethod · 0.45

Tested by

no test coverage detected