public override int First() { var input = GetInputLines(); var gameConsole = new HandheldConsole(input); gameConsole.Run(); return(gameConsole.Accumlator); }
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); }
public override void Puzzle2() { HandheldConsole gameConsole = new HandheldConsole(input); gameConsole.ExecuteInstructionsWithoutCorrupt(); }
public override void Puzzle1() { HandheldConsole gameConsole = new HandheldConsole(input); gameConsole.ExecuteInstructions(); }