long GetMemory(IntCodeParamMode paramMode, long address) { long value; switch (paramMode) { default: case IntCodeParamMode.Position: value = _codes[address]; value = _codes[value]; break; case IntCodeParamMode.Immediate: value = _codes[address]; break; case IntCodeParamMode.Relative: value = _codes[address]; value = _codes[_base + value]; break; } ; return(value); }
internal IntCodeOperation( IntCodeOperator oper, IntCodeParamMode paramA = IntCodeParamMode.Position, IntCodeParamMode paramB = IntCodeParamMode.Position, IntCodeParamMode paramC = IntCodeParamMode.Position) : this() { Operator = oper; ParameterA = paramA; ParameterB = paramB; ParameterC = paramC; }
void SetMemory(IntCodeParamMode paramMode, long address, long value) { switch (paramMode) { default: case IntCodeParamMode.Position: address = _codes[address]; _codes[address] = value; break; case IntCodeParamMode.Immediate: _codes[address] = value; break; case IntCodeParamMode.Relative: address = _codes[address]; _codes[_base + address] = value; break; } ; }