public static MoveCollection SolveCube(Cube cube, Type cubeSolver) { CubeSolver solver; if (cubeSolver == typeof(CrossSolver)) { solver = new CrossSolver(cube); solver.CalcMoves(); if (!solver.Solved) { MessageBox.Show("Der Würfel konnte nicht gelöst werden."); } return(solver.moves); } else if (cubeSolver == typeof(CubeSolverFridrich)) { solver = new CubeSolverFridrich(cube); solver.CalcMoves(); if (!solver.Solved) { MessageBox.Show("Der Würfel konnte nicht gelöst werden."); } return(solver.moves); } else { throw new NotImplementedException(); } }
protected override void CalcMoves() { // Das weiße Kreuz lösen CrossSolver cross = new CrossSolver(cube); moves.AddRange(cross.GetMoves()); FTLSolver ftl = new FTLSolver(cube); moves.AddRange(ftl.GetMoves()); try { //CalcOLL(); //CalcPLL(); bool solved = GetCubeSolved(); if (!solved) { moves.Clear(); } } catch (Exception) { throw; } }