public void Part2(string input, int answer) { long max = 0; var prog = FileIterator.LoadCSV <int>(input); foreach (var perm in Permutations(5, 6, 7, 8, 9)) { var vms = new List <Executor <IntCode.VmState, int, (long, long, long)> >(); foreach (var p in perm) { var vm = IntCode.CreateVM(prog); vm.State.InputQueue.Enqueue(p); vms.Add(vm); } long output = 0; foreach (var vm in vms.Cycle()) { vm.State.InputQueue.Enqueue(output); if (!vm.ExecuteUntilOutput(ref output)) { if (max < output) { max = output; } break; } } } max.Should().Be(answer); }
public void Example3(string input) { var prog = FileIterator.LoadCSV <long>(input); var vm = IntCode.CreateVM(prog); long output = 0; vm.State.Output = v => output = v; vm.Execute(); output.Should().Be(1125899906842624); }
public void Example2(string input) { var prog = FileIterator.LoadCSV <int>(input); var vm = IntCode.CreateVM((int[])prog.Clone()); long output = 0; vm.State.Output = v => output = v; vm.Execute(); $"{output}".Length.Should().Be(16); }
public void Problem(string inputProgram, long input, int answer) { long output = int.MinValue; var prog = FileIterator.LoadCSV <int>(inputProgram); var vm = IntCode.CreateVM(prog); vm.State.Input = Generators.Reader(input); vm.State.Output = o => output = o; vm.Execute(); output.Should().Be(answer); }
public void Example2(string inputProg, long input, int expectedOutput) { long output = int.MinValue; var prog = FileIterator.LoadCSV <int>(inputProg); var vm = IntCode.CreateVM(prog); vm.State.Input = Generators.Reader(input); vm.State.Output = o => output = o; vm.Execute(); output.Should().Be(expectedOutput); }
long CheckPoint(long x, long y) { if (prog == null) { prog = FileIterator.LoadCSV <int>("Data/Day19.txt"); } var vm = IntCode.CreateVM(prog); vm.Write(x); vm.Write(y); vm.Execute(); return(vm.Read()); }
public void Part1(string input, int mode, long answer) { var prog = FileIterator.LoadCSV <long>(input); var vm = IntCode.CreateVM(prog); vm.State.InputQueue.Enqueue(mode); long output = long.MinValue; vm.State.Output = v => output = v; vm.Execute(); output.Should().Be(answer); }
public void Example1(string input) { var prog = FileIterator.LoadCSV <int>(input); var vm = IntCode.CreateVM((int[])prog.Clone()); var output = new List <long>(); vm.State.Output = v => output.Add(v); vm.Execute(); for (int i = 0; i < prog.Length; i++) { output[i].Should().Be(prog[i]); } }
void TestGP() { var prog = new int[] { 109, 19, 204, -34, 99 }; var vm = IntCode.CreateVM(prog); vm.State.Mem[1985] = 12345; vm.State.GP = 2000; long output = 0; vm.State.Output = o => output = o; vm.Execute(); vm.State.GP.Should().Be(2019); output.Should().Be(12345); }
public void Part1() { var vm = IntCode.CreateVM("Data/Day17.txt"); vm.Execute(); var lines = vm.ReadLines().ToArray(); foreach (var line in lines) { output.WriteLine(line); } var grid = Grid(lines); Alignment(grid).Should().Be(3920); }
static void Main(string[] args) { var vm = IntCode.CreateVM("prog.txt"); vm.State.Input = () => { var c = Console.ReadKey().KeyChar; if (c == '\r') { c = '\n'; } return(c); }; vm.State.Output = c => Console.Write((char)c); vm.Execute(); }
public void Part1() { var vm = IntCode.CreateVM("Data/Day21.txt"); vm.WriteLines( "NOT A J", "NOT B T", "OR T J", "NOT C T", "OR T J", "AND D J", "WALK" ); vm.Execute(); foreach (var line in vm.ReadLines()) { output.WriteLine(line); } vm.Read().Should().Be(19357335); }
public void Part1(string input, int answer) { long max = 0; var prog = FileIterator.LoadCSV <int>(input); foreach (var perm in Permutations(0, 1, 2, 3, 4)) { long output = 0; foreach (var p in perm) { var vm = IntCode.CreateVM(prog); vm.State.Input = Generators.Reader(p, output); vm.State.Output = o => output = o; vm.Execute(); } if (max < output) { max = output; } } max.Should().Be(answer); }
public void Part2() { var vm = IntCode.CreateVM("Data/Day21.txt"); vm.WriteLines( "NOT B J", "NOT C T", "OR T J", "AND D J", "AND H J", "NOT A T", "OR T J", "RUN" ); vm.Execute(); foreach (var line in vm.ReadLines()) { output.WriteLine(line); } vm.Read().Should().Be(1140147758); }
public void Part2() { var vm = IntCode.CreateVM("Data/Day17.txt", new() { [0] = 2 });