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); }