Exemple #1
0
        public override int First()
        {
            var input       = GetInputLines();
            var gameConsole = new HandheldConsole(input);

            gameConsole.Run();
            return(gameConsole.Accumlator);
        }
Exemple #2
0
        public override int Second()
        {
            var input       = GetInputLines();
            var gameConsole = new HandheldConsole(input);

            for (int i = 0; i < gameConsole.Instructions.Count; i++)
            {
                // Switch
                if (gameConsole.Instructions[i].Item1 == Operation.jmp)
                {
                    gameConsole.Instructions[i] = (Operation.nop, gameConsole.Instructions[i].Item2);
                }
                else if (gameConsole.Instructions[i].Item1 == Operation.nop)
                {
                    gameConsole.Instructions[i] = (Operation.jmp, gameConsole.Instructions[i].Item2);
                }
                else
                {
                    continue;
                }

                // Run
                gameConsole.Run();
                if (gameConsole.Index == gameConsole.Instructions.Count)
                {
                    return(gameConsole.Accumlator);
                }

                // Switch back
                if (gameConsole.Instructions[i].Item1 == Operation.jmp)
                {
                    gameConsole.Instructions[i] = (Operation.nop, gameConsole.Instructions[i].Item2);
                }
                else if (gameConsole.Instructions[i].Item1 == Operation.nop)
                {
                    gameConsole.Instructions[i] = (Operation.jmp, gameConsole.Instructions[i].Item2);
                }
            }

            return(-1);
        }
Exemple #3
0
        public override void Puzzle2()
        {
            HandheldConsole gameConsole = new HandheldConsole(input);

            gameConsole.ExecuteInstructionsWithoutCorrupt();
        }
Exemple #4
0
        public override void Puzzle1()
        {
            HandheldConsole gameConsole = new HandheldConsole(input);

            gameConsole.ExecuteInstructions();
        }