internal virtual void set(CubieCube cc) { twist = cc.getTwistSym(); flip = cc.getFlipSym(); slice = cc.getUDSlice(); tsym = twist & 7; twist = twist >> 3; fsym = flip & 7; flip = flip >> 3; }
protected static void initFlipMove() { CubieCube c = new CubieCube(); CubieCube d = new CubieCube(); for (int i = 0; i < N_FLIP_SYM; i++) { c.setFlip(CubieCube.FlipS2R[i]); for (int j = 0; j < N_MOVES; j++) { CubieCube.EdgeMult(c, CubieCube.moveCube[j], d); FlipMove[i, j] = (char)d.getFlipSym(); } } }
static void initUDSliceFlipMove() { CubieCube c = new CubieCube(); CubieCube d = new CubieCube(); for (int i = 0; i < N_UDSLICEFLIP_SYM; i++) { c.setUDSliceFlip(CubieCube.UDSliceFlipS2R[i]); int udslice = CubieCube.UDSliceFlipS2R[i] >> 11; for (int j = 0; j < N_MOVES; j++) { CubieCube.EdgeMult(c, CubieCube.moveCube[j], d); // UDSliceFlipMove[i, j] = d.getUDSliceFlipSym(); int flip = d.getFlipSym(); int fsym = flip & 0x7; flip >>= 3; int udsliceflip = CubieCube.FlipSlice2UDSliceFlip[flip * N_SLICE + UDSliceConj[UDSliceMove[udslice, j] & 0x1ff, fsym]]; UDSliceFlipMove[i, j] = udsliceflip & unchecked ((int)0xfffffff0) | CubieCube.SymMult[udsliceflip & 0xf, fsym << 1]; } } }