Example #1
0
        public IEnumerable <Result> GetResults(IInputRepository inputRepository)
        {
            int[] integers = inputRepository.GetDay02Input().ToArray();

            // These changes are made in the inputfile
            // integers[1] = 12;
            // integers[2] = 2;

            bool isStopped = false;

            for (int i = 0; !isStopped; i += 4)
            {
                int param1 = integers[integers[i + 1]];
                int param2 = integers[integers[i + 2]];

                int register = integers[i + 3];

                if (integers[i] == 1)
                {
                    integers[register] = param1 + param2;
                }
                else if (integers[i] == 2)
                {
                    integers[register] = param1 * param2;
                }
                else if (integers[i] == 99)
                {
                    isStopped = true;
                }
                else
                {
                    throw new ArgumentException();
                }
            }

            yield return(new Result(integers[0]));
        }