Beispiel #1
0
        public static long ExecutePart1()
        {
            //Init
            var result        = new List <long>();
            var computer      = new IntcodeComputer();
            var phasesettings = Permutate(new List <long>()
            {
                0, 1, 2, 3, 4
            }, 5);
            var program = File.ReadAllText(@"..\..\..\Day7Input.txt").Split(",").Select(value => long.Parse(value)).ToList();

            //Test all phase settings permutations
            foreach (var phasesetting in phasesettings)
            {
                long signal = 0;
                foreach (var ps in phasesetting)
                {
                    //Load program
                    computer.Load(program);

                    //Run program
                    var output = computer.Run(new Queue <long>(new long[] { ps, signal }));
                    if (output.HasValue)
                    {
                        signal = output.Value;
                    }
                }
                result.Add(signal);
            }

            return(result.Max());
        }
Beispiel #2
0
        private static string RunBoostProgram(long input)
        {
            //Init
            var computer = new IntcodeComputer();
            var program  = File.ReadAllText(@"..\..\..\Day9Input.txt").Split(",").Select(value => long.Parse(value)).ToList();
            var result   = new List <long>();

            //Load program
            computer.Load(program);

            //Run program
            while (computer.State != ProgramState.Finished)
            {
                var output = computer.Run(new Queue <long>(new long[] { input }));
                if (output.HasValue)
                {
                    result.Add(output.Value);
                }
            }

            return(string.Join(",", result.Select(value => value.ToString())));
        }