Пример #1
0
        public static void Main()
        {
            var intCodes = System.IO.File
                           .ReadAllText(
                "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day21.txt")
                           .Split(",").Select(long.Parse).ToList();
            var instructions = System.IO.File
                               .ReadAllText(
                "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day21Instruction.txt");
            var instructions2 = System.IO.File
                                .ReadAllText(
                "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day21InstructionP2.txt");
            var intComputer = new IntComputer
            {
                IntCodes = intCodes.Select(i => i).ToList()
            };

            foreach (var el in instructions)
            {
                if (el == 13)
                {
                    continue;
                }
                intComputer.Input.Enqueue(el);
            }

            intComputer.Start();
            var output = intComputer.DumpFullOutput();

            foreach (var el in output)
            {
                Console.Write((char)el);
            }
            Console.WriteLine($"Part1: amount of hull damage {output.Last()}");
            var intComputer2 = new IntComputer
            {
                IntCodes = intCodes.Select(i => i).ToList()
            };

            foreach (var el in instructions2)
            {
                if (el == 13)
                {
                    continue;
                }
                intComputer2.Input.Enqueue(el);
            }

            intComputer2.Start();
            var output2 = intComputer2.DumpFullOutput();

            foreach (var el in output2)
            {
                Console.Write((char)el);
            }
            Console.WriteLine($"Part2: amount of hull damage {output2.Last()}");
        }
Пример #2
0
        private static void Main(string[] args)
        {
            var input = System.IO.File
                        .ReadAllText(
                "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day13.txt")
                        .Split(",").Select(long.Parse).ToList();
            var intComputer = new IntComputer
            {
                IntCodes = input
            };

            intComputer.Start();
            while (intComputer.Status == ComputerStatus.Running || intComputer.Status == ComputerStatus.Waiting)
            {
                if (intComputer.Status == ComputerStatus.Waiting)
                {
                    ParseOutput(intComputer.DumpFullOutput());
                    intComputer.Output.Clear();
                    var ball = _gameSurface.First(i => i.Value == 4).Key.Split(";").Select(int.Parse).ToList();
                    Console.WriteLine($"Ball: ({ball[0]}, {ball[1]})");
                    var slab = _gameSurface.First(i => i.Value == 3).Key.Split(";").Select(int.Parse).ToList();
                    Console.WriteLine($"Slab: ({slab[0]}, {slab[1]})");
                    var blocksRemaning = _gameSurface.Values.Count(i => i == 2);
                    Console.WriteLine($"Blocks remaining: {blocksRemaning}");
                    Console.WriteLine("");
                    if (ball[0] > slab[0])
                    {
                        intComputer.Input.Enqueue(1);
                    }
                    else if (ball[0] < slab[0])
                    {
                        intComputer.Input.Enqueue(-1);
                    }
                    else
                    {
                        intComputer.Input.Enqueue(0);
                    }
                    intComputer.Start();
                }
            }

            ParseOutput(intComputer.Output);
        }
Пример #3
0
        public static void Main()
        {
            var intCodes = System.IO.File
                           .ReadAllText(
                "C:\\Users\\aarondk\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day25.txt")
                           .Split(",").Select(long.Parse).ToList();

            var rooms       = new Dictionary <string, Room>();
            var intComputer = new IntComputer
            {
                IntCodes = intCodes.Select(i => i).ToList()
            };

            intComputer.Start();
            while (intComputer.Status == ComputerStatus.Running || intComputer.Status == ComputerStatus.Waiting)
            {
                var output = intComputer.DumpFullOutput();
                foreach (var el in output)
                {
                    Console.Write((char)el);
                }

                var prsdOutput = ParseOutput(output);
                rooms[GetRoomName(prsdOutput)] = new Room
                {
                    Items = GetItemList(prsdOutput),
                    Name  = GetRoomName(prsdOutput)
                };
                if (intComputer.Status == ComputerStatus.Waiting)
                {
                    var input = Console.ReadLine();
                    foreach (var el in input)
                    {
                        intComputer.Input.Enqueue(el);
                    }

                    intComputer.Input.Enqueue(10);
                }

                intComputer.Start();
            }
        }
Пример #4
0
        public static void Main()
        {
            var intComputer = new IntComputer
            {
                IntCodes = System.IO.File
                           .ReadAllText(
                    "C:\\Users\\Aaron\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day17.txt")
                           .Split(",").Select(long.Parse).ToList()
            };

            intComputer.Start();
            var output        = ParseAndPrintOutput(intComputer.DumpFullOutput());
            var intersections = GetIntersections(output);

            Console.WriteLine($"Part1: The sum of the alignment parameters is {intersections.Values.Sum()}");
            var path      = GetPaths(output);
            var functions = CreateFunctions(path);
            var intCodes  = System.IO.File
                            .ReadAllText(
                "C:\\Users\\Aaron\\source\\repos\\AdventOfCode-CSharp\\AdventOfCode-CSharp\\Resources\\Day17.txt")
                            .Split(",").Select(long.Parse).ToList();

            intCodes[0] = 2;
            intComputer = new IntComputer
            {
                IntCodes = intCodes
            };
            foreach (var function in functions)
            {
                foreach (var element in function)
                {
                    intComputer.Input.Enqueue(element);
                }
            }
            intComputer.Input.Enqueue(110);
            intComputer.Input.Enqueue(10);
            intComputer.Start();
            var outputPart2       = intComputer.DumpFullOutput();
            var parsedOutputPart2 = ParseAndPrintOutput(outputPart2);

            Console.WriteLine($"Part2: amount of dust collected: {outputPart2.Last()}");
        }