Exemple #1
0
        private bool FinnsDetEnLösning()
        {
            List <SudokuSökResultat> resultat = new List <SudokuSökResultat>();
            bool korrektPuzzel = true;

            do
            {
                resultat.Clear();
                foreach (Func <SudokuPussel, List <SudokuSökResultat>, bool> teknik in allaTekniker)
                {
                    if (teknik(this, resultat))
                    {
                        break;
                    }
                }
                this.PlaceraSiffra(resultat);
            }while (resultat.Count > 0);

            if (!SpelPlan.Any(ruta => ruta.Siffra == 0))
            {
                if (DubbletterIRad())
                {
                    korrektPuzzel = false;
                }
                if (DubletterIKolumn())
                {
                    korrektPuzzel = false;
                }
                if (DubbletterIBox())
                {
                    korrektPuzzel = false;
                }
            }
            else
            {
                korrektPuzzel = false;
            }
            return(korrektPuzzel);
        }