| 214 | } |
| 215 | |
| 216 | private static boolean idaeofc(int ep, int eo, int eof, int d, int lm) { |
| 217 | if (d == 0) return ep == 1656 && eo == 1104 && (eof & 15) == 0; |
| 218 | if (epd[ep] > d || eod[eo] > d || eofd[eof] > d) return false; |
| 219 | for (int i = 0; i < 6; i++) |
| 220 | if (i != lm) { |
| 221 | int epx = ep, eox = eo, eofx = eof; |
| 222 | for (int j = 0; j < 3; j++) { |
| 223 | epx = epm[epx][i]; eox = eom[eox][i]; eofx = eom[eofx][i]; |
| 224 | if (idaeofc(epx, eox, eofx, d-1, i)) { |
| 225 | seq[d] = i * 3 + j; |
| 226 | return true; |
| 227 | } |
| 228 | } |
| 229 | } |
| 230 | return false; |
| 231 | } |
| 232 | |
| 233 | private static boolean idaxcross(int ep, int eo, int co, int feo, int slot, int d, int lm) { |
| 234 | if (d == 0) return ep == 1656 && eo == 1104 && co == (slot + 4) * 3 && feo == slot * 2; |