public async Task <long> Part2(string input = null) { var lines = await File.ReadAllLinesAsync("inputs\\20.txt"); var blocks = SplitExtension.Split(lines, ""); var tiles = blocks.Select(b => new Tile(b.ToList())).ToList(); var neighbours = tiles.Select(t => t.PotentialNeighbours(tiles)); var edges = tiles.Where(t => t.PotentialNeighbours(tiles).ToList().Count(x => x == 0) >= 1); // edges.Count().Should().Be(44); var megaTile = new MegaTile(tiles); return(IterateMegaTilePart2(megaTile)); }
private static long IterateMegaTilePart2(MegaTile megaTile) { var operationOrder = new[]