Ejemplo n.º 1
0
            private void ExecuteInstruction(ConditionalInstruction instruction)
            {
                int instructionOffset = 1;

                if (instruction.Condition.Valid(registers[instruction.Condition.LeftRegister]))
                {
                    ExecuteValidatedInstruction(instruction);
                }

                instructionIndex += instructionOffset;
            }
Ejemplo n.º 2
0
            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;
                }
            }