예제 #1
0
        public void SimpleProgram4()
        {
            int[] baseProgram = new int[] { 1, 1, 1, 4, 99, 5, 6, 0, 99 };
            int[] actual      = Part1.RunIntProgram(baseProgram);
            int[] expected    = new int[] { 30, 1, 1, 4, 2, 5, 6, 0, 99 };

            Assert.True(expected.SequenceEqual(actual));
        }
예제 #2
0
        public void SimpleProgram3()
        {
            int[] baseProgram = new int[] { 2, 4, 4, 5, 99, 0 };
            int[] actual      = Part1.RunIntProgram(baseProgram);
            int[] expected    = new int[] { 2, 4, 4, 5, 99, 9801 };

            Assert.True(expected.SequenceEqual(actual));
        }
예제 #3
0
        public void SimpleProgram2()
        {
            int[] baseProgram = new int[] { 2, 3, 0, 3, 99 };
            int[] actual      = Part1.RunIntProgram(baseProgram);
            int[] expected    = new int[] { 2, 3, 0, 6, 99 };

            Assert.True(expected.SequenceEqual(actual));
        }
예제 #4
0
        public void SimpleProgram0()
        {
            int[] baseProgram = new int[] { 1, 9, 10, 3, 2, 3, 11, 0, 99, 30, 40, 50 };
            int[] actual      = Part1.RunIntProgram(baseProgram);
            int[] expected    = new int[] { 3500, 9, 10, 70, 2, 3, 11, 0, 99, 30, 40, 50 };

            Assert.True(expected.SequenceEqual(actual));
        }
예제 #5
0
        static void Main(string[] args)
        {
            var solve1 = new Part1().Solve();

            Console.WriteLine(solve1);
            var solve2 = new Part2().Solve();

            Console.WriteLine(solve2);
        }
예제 #6
0
        public void Part1Answer()
        {
            int[] inState1202 = Part1.PutProgramIntoState1202(workingGravityProgram);

            int[] actual   = Part1.RunIntProgram(inState1202);
            int   expected = 3306701;

            Assert.Equal(expected, actual[0]);
        }
예제 #7
0
        public static int FindNounVerbToGetOutput(int[] intProgram, int outputValueToFind)
        {
            for (int noun = 0; noun <= 99; noun++)
            {
                for (int verb = 0; verb <= 99; verb++)
                {
                    int[] working = DeepClone(intProgram);
                    working = PutProgramIntoState(working, noun, verb);
                    int[] result = Part1.RunIntProgram(working);

                    if (result[0] == outputValueToFind)
                    {
                        return(100 * noun + verb);
                    }
                }
            }

            return(-1);
        }