Exemplo n.º 1
0
 public override void First()
 {
     Echo("Provide code 1");
     icm.Init("Day5/diagnostics.ic");
     icm.Input.Write(1);
     icm.Run();
 }
Exemplo n.º 2
0
 public override void First()
 {
     icm.Init("Day2/gravassist.ic");
     icm.mem[1] = 12; icm.mem[2] = 2; // Patch code
     icm.Run();
     Echo($"Result {icm.mem[0]}");
     ValidateAnswer(icm.mem[0], 3790645);
 }
Exemplo n.º 3
0
        public override void First()
        {
            var icm = new IntCodeMachine();

            icm.Init("Day15/repairdroid.ic");
            map = CreateMap(icm);
            int val = ShortestPath(map);

            Echo($"Shortest path from (0,0) to oxygen tank in {val} steps");
            ValidateAnswer(val, 218);
        }
Exemplo n.º 4
0
        public override void First()
        {
            var icm = new IntCodeMachine();

            icm.Init("Day17/cameras.ic");
            var map = GenerateMap(icm);
            int val = FindIntersections(map);

            map.Render();
            Echo($"Alignment parameter sum: {val}");
            ValidateAnswer(val, 2080);
        }
Exemplo n.º 5
0
        public override void Second()
        {
            var icm = new IntCodeMachine();

            icm.Init("Day9/boost.ic");
            icm.Input.Write(2); // Boost code
            icm.Run();
            var boostcode = icm.Output.Read();

            Echo($"output: {boostcode}");
            ValidateAnswer(boostcode, 49115);
        }
Exemplo n.º 6
0
        public override void First()
        {
            var icm = new IntCodeMachine();

            icm.Init("Day9/boost.ic");
            //icm.Trace = true;
            icm.Input.Write(1); // Test code
            icm.Run();
            var testOutput = icm.Output.Read();

            Echo($"debug output: {testOutput}");
            ValidateAnswer(testOutput, 2775723069);
        }
Exemplo n.º 7
0
        public override void Second()
        {
            var icm = new IntCodeMachine();

            icm.Init("Day17/cameras.ic");
            icm.mem[0] = 2; // Override movement control
            var map = new SparseMap <char>(true);
            var y0  = Console.CursorTop;

            (int x, int y)cur = (0, 0);
            int cmd = 0, cIdx = 0;
            var dust = 0L;

            while (icm.Step())
            {
                while (icm.Output.CanRead)
                {
                    var tile = icm.Output.Read();
                    if (tile == 10)
                    {
                        cur.x = 0;
                        cur.y++;
                    }
                    else if (tile < 256)
                    {
                        map.Set(cur, (char)tile);
                        cur.x++;
                    }
                    else
                    {
                        dust = tile;
                    }
                }
                if (icm.WantInput)
                {
                    if (cmd < movements.Length && cIdx < movements[cmd].Length)
                    {
                        icm.Input.Write((long)movements[cmd][cIdx]);
                        cIdx++;
                    }
                    else
                    {
                        cmd++;
                        cIdx = 0;
                    }
                }
            }
            map.Render();
            Echo($"Dust collected: {dust}");
            ValidateAnswer(dust, 742673);
        }
Exemplo n.º 8
0
        public override void First()
        {
            var icm = new IntCodeMachine();

            icm.Init("Day13/breakout.ic");

            icm.Input.Write(0); // Start on a black panel

            Play(icm);
            var tilesLeft = tiles.Count(t => t.Value == 2);

            Echo($"# of tiles left: {tilesLeft}");
            ValidateAnswer(tilesLeft, 306);
        }