Example #1
0
        public static long Part1(PocketDimension dimension)
        {
            if (dimension == null)
            {
                throw new ArgumentNullException(nameof(dimension));
            }

            dimension = dimension.Clone();
            dimension.Step(6);
            return(dimension.ActiveCubes);
        }
Example #2
0
        private static int CountAfter6Cycles(int dimensions, bool[][] initialSlice)
        {
            var pocketDimension = new PocketDimension(dimensions, initialSlice);

            for (var i = 0; i < 6; i++)
            {
                pocketDimension.Step();
            }

            return(pocketDimension.CountActive());
        }
Example #3
0
        public static int Main(string[] args)
        {
            if (args == null)
            {
                throw new ArgumentNullException(nameof(args));
            }

            string filename = args.Length > 0 ? args[0] : "input.txt";

            if (!File.Exists(filename))
            {
                Console.Error.WriteLine($"File not found: {filename}");
                return(100);
            }

            var dimension = PocketDimension.FromString(File.ReadAllText(filename));

            Console.WriteLine(Solver.Part1(dimension));
            Console.WriteLine(Solver.Part2(dimension));

            return(0);
        }