public int[] Interprets_comma_separated_code(string code) { var interpreter = new InterpreterBuilder().Build(); var instructions = interpreter.Interpret(code); return(instructions); }
public void Puzzle5_day2_answer() { var code = File.ReadLines("C:\\Code\\github\\AdventOfCode2019\\Puzzle5\\input.txt").First(); var interpreter = new InterpreterBuilder().Build(); var instructions = interpreter.Interpret(code); var inputSender = new QueuedInputSenderBuilder().Build(); var outputReceiver = new QueuedOutputReceiverBuilder().ThatIgnoresZeros().Build(); var computer = new IntcodeComputerBuilder().WithInputSender(inputSender).WithOutputReceiver(outputReceiver).Build(); inputSender.Enqueue(5); computer.Run(instructions); Assert.AreEqual(9217546, outputReceiver.Dequeue()); }
public void Puzzle5_day1_answer() { var code = File.ReadLines(@"C:\Users\Neil\Documents\GitHub\AdventOfCode2019\Puzzle5\input.txt").First(); var interpreter = new InterpreterBuilder().Build(); var instructions = interpreter.Interpret(code); var inputSender = new QueuedInputSenderBuilder().Build(); var outputReceiver = new QueuedOutputReceiverBuilder().ThatIgnoresZeros().Build(); var computer = new IntcodeComputerBuilder().WithInputSender(inputSender).WithOutputReceiver(outputReceiver).Build(); inputSender.Enqueue(1); computer.Run(instructions); Assert.AreEqual(6761139, outputReceiver.Dequeue()); }
public void Puzzle2_day2_answer() { var code = File.ReadLines("C:\\Code\\github\\AdventOfCode2019\\Puzzle2\\input.txt").First(); var interpreter = new InterpreterBuilder().Build(); var instructions = interpreter.Interpret(code); instructions[1] = 53; instructions[2] = 98; var computer = new IntcodeComputerBuilder().Build(); computer.Run(instructions); Assert.AreEqual(19690720, computer.Memory.GetValueImmediate(0)); }
public void Puzzle2_day1_answer() { var code = File.ReadLines(".\\Puzzle2.txt").First(); var interpreter = new InterpreterBuilder().Build(); var instructions = interpreter.Interpret(code); instructions[1] = 12; instructions[2] = 2; var computer = new IntcodeComputerBuilder().Build(); computer.Run(instructions); Assert.AreEqual(4576384, computer.Memory.GetValueImmediate(0)); }
public void X() { //var code = File.ReadLines(".\\Puzzle5.txt").First(); var code = "3,15,3,16,1002,16,10,16,1,16,15,15,4,15,99,0,0"; var interpreter = new InterpreterBuilder().Build(); var instructions = interpreter.Interpret(code); int result = Enumerable.Range(0, 5) .GetPermutations() .Select(phaseSettingPermutation => { var test = new List <Amplifier>(); IInputSender connector = null; foreach (var phaseSetting in phaseSettingPermutation) { var inputSender = connector ?? new ReceiverSenderConnector(); var outputReceiver = new ReceiverSenderConnector(); inputSender.Enqueue(phaseSetting); if (connector == null) { inputSender.Enqueue(0); } var parser = new InstructionParser(); var computer = new IntcodeComputer(inputSender, outputReceiver, parser); test.Add(new Amplifier(computer, instructions)); connector = outputReceiver; } foreach (var amplifier in test) { amplifier.Run(); } return(connector.Dequeue()); }) .Largest(); Assert.AreEqual(43210, result); }