public override void First() { Echo("Provide code 1"); icm.Init("Day5/diagnostics.ic"); icm.Input.Write(1); icm.Run(); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }