예제 #1
0
        public SudokuSolver(Puzzle puzzle)
        {
            _StartTime          = DateTime.UtcNow;
            ViewModel           = new SudokuSolverViewModel();
            ViewModel.Solutions = new List <Puzzle>();
            ViewModel.TotalAnalyticalEntries = 0;
            ViewModel.TotalHypothesis        = 0;
            ViewModel.TotalUniqueSolutions   = 0;

            puzzle.CanSolve = true;
            puzzle.Solved   = false;

            _Puzzles = new List <Puzzle> ();
            _Puzzles.Add(puzzle);
            _PuzzleCount++;

            SolveAllPuzzlesRecursively();

            foreach (var p in _Puzzles.Where(x => x.Solved == true && x.CanSolve == true))
            {
                ViewModel.TotalUniqueSolutions++;
                ViewModel.Solutions.Add(p);
            }

            ViewModel.ProcessingDuration = DateTime.UtcNow - _StartTime;
        }
        public ActionResult Index()
        {
            var viewModel = new SudokuSolverViewModel()
            {
                Board = BoardGenerator.GenerateBoard().ToStringBoard()
            };

            return(View(viewModel));
        }