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); } }
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))); } }
public Rotation getReverse() { return(new Rotation(c_face, DirectionHandler.getOpposite(c_direction))); }
public void print() { Console.Write("({0},{1})", FaceHandler.getCharValue(c_face), DirectionHandler.getString(c_direction)); }