Beispiel #1
0
        /// <summary>
        /// Configura all amplifiers and returns the output sent to the thruster
        /// </summary>
        public long ConfigureAmplifiers(int startingInput)
        {
            long lastOutput = startingInput;

            for (int i = 0; i < _phaseSequence.Count(); i++)
            {
                var phaseSetting = _phaseSequence[i];
                var io           = new IntCodeComputerIO(new List <long>()
                {
                    phaseSetting, lastOutput
                });
                var comp = new IntCodeComputerInstance(_code.ToList(), io, io);

                comp.Compute();
                lastOutput = io.Outputs.Last();
            }

            return(lastOutput);
        }
Beispiel #2
0
 private void AddOutAsInput(IntCodeComputerIO fromAmplifier, IntCodeComputerIO toAmplifier)
 {
     fromAmplifier.SentOutput += (long i) => toAmplifier.AddNewInput(i);
 }