Beispiel #1
0
 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;
 }
Beispiel #2
0
        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();
                }
            }
        }
Beispiel #3
0
        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];
                }
            }
        }