Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }