예제 #1
0
        static void BruteInfiniteLoop(string[] instructions)
        {
            var nopToJmp = BruteInfiniteLoopNopToJmp(instructions);

            if (nopToJmp is not null)
            {
                Console.WriteLine(StupidGameEmulator.CalculateAccUntilLoop(nopToJmp));
                return;
            }

            var jmpToNop = BruteInfiniteLoopJmpToNop(instructions);

            Console.WriteLine(StupidGameEmulator.CalculateAccUntilLoop(jmpToNop));
        }
예제 #2
0
        static async Task Main(string[] args)
        {
            //var instructions = new[] {
            //    "nop +0",
            //    "acc +1",
            //    "jmp +4",
            //    "acc +3",
            //    "jmp -3",
            //    "acc -99",
            //    "acc +1",
            //    "jmp -4",
            //    "acc +6",
            //};

            var instructions = await File.ReadAllLinesAsync("input.txt");

            Console.WriteLine("Value of accumulator before loop: {0}", StupidGameEmulator.CalculateAccUntilLoop(instructions));
            BruteInfiniteLoop(instructions);
        }