Beispiel #1
0
        public object SolvePart1()
        {
            IntcodeComputer computer = new IntcodeComputer(rawInput);
            List <int>      result   = computer.ComputeOpcodes(12, 2);

            return(result[0]);
        }
Beispiel #2
0
        private int ProcessAmplifierControllerProgram(IEnumerable <int> phaseSettings)
        {
            IntcodeComputer computer = new IntcodeComputer(_rawInput);
            int             output   = 0;

            int[] inputs;
            foreach (int setting in phaseSettings)
            {
                inputs = new int[] { setting, output };
                computer.ComputeOpcodes(null, null, inputs);
                output = computer.Output[0];
            }
            return(output);
        }
Beispiel #3
0
        public object SolvePart2()
        {
            int             targetOutput = 19690720;
            List <int>      results;
            IntcodeComputer computer = new IntcodeComputer(rawInput);

            for (int noun = 0; noun < 100; noun++)
            {
                for (int verb = 0; verb < 100; verb++)
                {
                    results = computer.ComputeOpcodes(noun, verb);
                    if (results[0] == targetOutput)
                    {
                        return((noun * 100) + verb);
                    }
                }
            }
            throw new Exception("Solution could not be found.");
        }
Beispiel #4
0
 public object SolvePart1()
 {
     _computer.ComputeOpcodes();
     Console.WriteLine(string.Join(",", _computer.Output));
     return("SKIPPED - NOT SOLVED");
 }
Beispiel #5
0
 public object SolvePart1()
 {
     int[] programInputs = new int[] { (int)SystemId.AirConditioner };
     computer.ComputeOpcodes(null, null, programInputs);
     return(computer.Output[computer.Output.Count - 1]);
 }