public static BommenBepalerStats BepaalBommenMulti2(Vakje[,] deVakjesArray, BotConfig botConfig)
        {
            var stats = new BommenBepalerStats();

            int width  = deVakjesArray.GetLength(0);
            int height = deVakjesArray.GetLength(1);

            var initialIteratie = new BommenBepalerStatsIteratie();

            stats.Iteraties.Add(initialIteratie);

            var flatVakjes = TwoDimensionalArrayHelper.Flatten(deVakjesArray).Where(t => t != null);
            var allSets    = new List <VakjeSetDeluxe>();

            foreach (var vakje in flatVakjes)
            {
                if (vakje.IsNumber)
                {
                    var unrevealedTilesOmMeHeen    = vakje.SurroundingVakjes.Where(t => !t.Revealed).ToList();
                    var revealedBommenOmMeHeen     = vakje.SurroundingVakjes.Where(t => t.IsBomb).ToList();
                    var revealedNietBommenOmMeHeen = vakje.SurroundingVakjes.Where(t => t.IsNumber).ToList();

                    var bommenInDitSet     = vakje.Number - revealedBommenOmMeHeen.Count;
                    var nietBommenInDitSet = unrevealedTilesOmMeHeen.Count - bommenInDitSet;
                    AddSetDeluxe(allSets, initialIteratie, bommenInDitSet, nietBommenInDitSet, unrevealedTilesOmMeHeen);
                }
            }

            bool doorGaan  = true;
            int  iteraties = 1;

            while (doorGaan)
            {
                var iteratie = BepaalBommen2(deVakjesArray, width, height, botConfig);
                iteratie.IteratieNummer = iteraties;
                stats.Iteraties.Add(iteratie);
                doorGaan = iteratie.Vondsten.Any();
                iteraties++;
                //GalaxyVisualizator.RenderToConsole(deVakjesArray, DefaultLoggerFactory.CreateLoggerForTests());
            }

            BepaalBommenBasedOnSetsDeluxe(flatVakjes);

            Debug.WriteLine($"Totaal iteraties: {iteraties}");
            return(stats);
        }
        public static BommenBepalerStats BepaalBommenMulti(Vakje[,] deVakjesArray, BotConfig botConfig)
        {
            var stats = new BommenBepalerStats();

            int width  = deVakjesArray.GetLength(0);
            int height = deVakjesArray.GetLength(1);

            bool doorGaan  = true;
            int  iteraties = 0;

            while (doorGaan)
            {
                var iteratie = BepaalBommen(deVakjesArray, width, height, botConfig);
                iteratie.IteratieNummer = iteraties;
                stats.Iteraties.Add(iteratie);
                doorGaan = iteratie.Vondsten.Any();
                iteraties++;
            }
            Debug.WriteLine($"Totaal iteraties: {iteraties}");
            return(stats);
        }