Exemple #1
0
        protected override int SolvePartOne()
        {
            phaseSettingSequences = GetPermutations(new int[] { 0, 1, 2, 3, 4 }, 5);
            int maxThrusterSignal = 0;

            foreach (IEnumerable <int> phaseSettingSequence in phaseSettingSequences)
            {
                amplifiers = new Amplifier[5];

                for (int i = 0; i < amplifiers.Length; i++)
                {
                    amplifiers[i] = new Amplifier(intcodeProgram.Copy());
                    amplifiers[i].SetPhaseSetting(phaseSettingSequence.ElementAt(i));
                }

                int output = 0;
                for (int i = 0; i < amplifiers.Length; i++)
                {
                    amplifiers[i].SetInput(output);
                    amplifiers[i].Execute();
                    output = amplifiers[i].GetOutput();
                }

                if (output > maxThrusterSignal)
                {
                    maxThrusterSignal = output;
                }
            }
            return(maxThrusterSignal);
        }