Example #1
0
        public Boolean readFromFile(RubikFileReader p_reader)
        {
            int l_int;

            l_int = p_reader.read();
            //Console.Write("%d ",l_int);
            while ((l_int == ' ') || (l_int == 13 /*'\r'*/))
            {
                l_int = p_reader.read();
                // Console.Write("%d ",l_int);
            }

            if ((l_int == /*'\n'*/ 10) || (l_int == -1 /*EOF*/) || (l_int != '('))
            {
                return(false);
            }
            else
            {
                c_face = FaceHandler.getFace((int)Char.GetNumericValue((char)(p_reader.read())));
                p_reader.read();
                c_direction = DirectionHandler.getDirection((int)Char.GetNumericValue((char)(p_reader.read())));
                p_reader.read();
                return(true);
            }
        }
Example #2
0
        public void rotate(Rotation p_rotation)
        {
            Face      l_temp;
            Face      l_face      = p_rotation.getFace();
            Direction l_direction = p_rotation.getDirection();

            if (l_face == Face.TOP)
            {
                if (l_direction == Direction.CW)
                {
                    c_currentFront = getFace(Face.RIGHT);
                }
                else
                {
                    c_currentFront = getFace(Face.LEFT);
                }
            }
            else if (l_face == Face.RIGHT)
            {
                if (l_direction == Direction.CW)
                {
                    l_temp         = c_currentFront;
                    c_currentFront = getFace(Face.BOTTOM);
                    c_currentUp    = l_temp;
                }
                else
                {
                    l_temp         = getFace(Face.BACK);
                    c_currentFront = c_currentUp;
                    c_currentUp    = l_temp;
                }
            }
            else if (l_face == Face.FRONT)
            {
                if (l_direction == Direction.CW)
                {
                    c_currentUp = getFace(Face.LEFT);
                }
                else
                {
                    c_currentUp = getFace(Face.RIGHT);
                }
            }
            else
            {
                rotate(new Rotation(FaceHandler.getOpposite(l_face), DirectionHandler.getOpposite(l_direction)));
            }
        }
Example #3
0
 public Rotation getReverse()
 {
     return(new Rotation(c_face, DirectionHandler.getOpposite(c_direction)));
 }
Example #4
0
 public void print()
 {
     Console.Write("({0},{1})", FaceHandler.getCharValue(c_face), DirectionHandler.getString(c_direction));
 }