private void ExecuteInstruction(ConditionalInstruction instruction) { int instructionOffset = 1; if (instruction.Condition.Valid(registers[instruction.Condition.LeftRegister])) { ExecuteValidatedInstruction(instruction); } instructionIndex += instructionOffset; }
private void ExecuteValidatedInstruction(ConditionalInstruction instruction) { switch (instruction.Operator) { case ComputerOperator.Increase: case ComputerOperator.Decrease: int multiplier = instruction.Operator is ComputerOperator.Decrease ? -1 : 1; int result = registers[instruction.Register] += instruction.Adjustment * multiplier; if (result > AllTimeLargestRegisterValue) { AllTimeLargestRegisterValue = result; } break; } }