private void Solve(N_Puzzle.I_NPuzzleSolver Solver) { N_Puzzle.IEvaluation Eval = new N_Puzzle.ManhattanDistanceEvaluator(); System.Diagnostics.Stopwatch SolutionTime = new System.Diagnostics.Stopwatch(); SolutionTime.Start(); Solution = Solver.Solve(MainPuzzle, Eval).ToList(); SolutionTime.Stop(); OnSolved(SolutionTime.Elapsed); }
private void Btn_Solve_Click(object sender, EventArgs e) { Btn_Gen.Enabled = false; Btn_Solve.Enabled = false; N_Puzzle.I_NPuzzleSolver Solver = null; if (Rad_AStar.Checked) { Solver = new N_Puzzle.NPuzzleSolverAStar(); } else if (Rad_Breadth.Checked) { Solver = new N_Puzzle.NPuzzleSolverBreadthFirst(); } SolveThread = new System.Threading.Thread(new System.Threading.ThreadStart(() => Solve(Solver))); SolveThread.Priority = System.Threading.ThreadPriority.Highest; SolveThread.Start(); Cursor.Current = Cursors.WaitCursor; }