| 385 | } |
| 386 | |
| 387 | boolean init3() { |
| 388 | c2.copy(c1); |
| 389 | for (int i=0; i<length2; i++) { |
| 390 | c2.move(move2[i]); |
| 391 | } |
| 392 | if (!c2.checkEdge()) { |
| 393 | return false; |
| 394 | } |
| 395 | int eparity = e12.set(c2.getEdge()); |
| 396 | ct3.set(c2.getCenter(), eparity ^ c2.getCorner().getParity()); |
| 397 | int ct = ct3.getct(); |
| 398 | // int edge = e12.get(10); |
| 399 | int prun = Edge3.getprun(e12.getsym()); |
| 400 | |
| 401 | if (arr2[arr2idx] == null) { |
| 402 | arr2[arr2idx] = new FullCube(c2); |
| 403 | } else { |
| 404 | arr2[arr2idx].copy(c2); |
| 405 | } |
| 406 | arr2[arr2idx].value = length1 + length2 + Math.max(prun, Center3.prun[ct]); |
| 407 | arr2[arr2idx].length2 = length2; |
| 408 | arr2idx++; |
| 409 | |
| 410 | return arr2idx == arr2.length; |
| 411 | } |
| 412 | |
| 413 | public boolean search3(int edge, int ct, int prun, int maxl, int lm, int depth) { |
| 414 | if (maxl == 0) { |