bool SolveOneCornerPosition(ref List <string> path) { CubeInfo.Cubie cubie = null; List <CubeInfo.Cubie> bottom = _cubies.AnalyzeBottomCorners(ref cubie, _solved); if (cubie == null) { return(true); // no work to do } FocusCubie(cubie); _cubies.EnableColor(cubie, true); string[] down = { "D", "D'", "D2", "" }; ArrayList steps = new ArrayList(); steps.Add(down); path = _solver.Search(cubie, _solved, steps, _solver.ScorePositions); return(path.Count > 0); }