private void SolveNurikabe()
        {
            char[][] gridToSolve = new char[detectedNumbers.Length][];
            int      most;

            for (int i = 0; i < detectedNumbers.Length; i++)
            {
                gridToSolve[i] = new char[detectedNumbers.Length];
                for (int j = 0; j < detectedNumbers.Length; j++)
                {
                    most = detectedNumbers[i][j].GroupBy(x => x).OrderByDescending(grp => grp.Count()).Select(grp => grp.Key).First();
                    gridToSolve[i][j] = most.ToString().ToCharArray()[0];
                }
            }

            solver = new NurikabeSolver.NurikabeSolver();
            solver.SetNewPuzzle(gridToSolve);
            solver.Begin();
            solvingResult = solver.GetResult();
        }
 public SolutionChecker(NurikabeSolver solver)
 {
     this.solver = solver;
 }
 public Heuristic(NurikabeSolver solver)
 {
     this.solver = solver;
 }