Exemplo n.º 1
0
    private static string GetParamValue(IntCodeProgram program, long instruction, long value, int param)
    {
        var mode = IntCodeProgram.OcodeParameterMode(instruction, param);

        switch (mode)
        {
        case ParameterMode.Position: return($"[{value}]");

        case ParameterMode.Immediate: return($"{value}");

        case ParameterMode.Relative: return($"[{value} + {program.RelativeBaseOffset}]");

        default: return("");
        }
    }
Exemplo n.º 2
0
 public void ParameterMode_ParameterC_InRelative2() => Assert.AreEqual(ParameterMode.Relative, IntCodeProgram.OcodeParameterMode(20104, 2));
Exemplo n.º 3
0
 public void ParameterMode_ParameterC_InPosition2() => Assert.AreEqual(ParameterMode.Position, IntCodeProgram.OcodeParameterMode(02104, 2));
Exemplo n.º 4
0
 public void ParameterMode_ParameterC_InImmediate2() => Assert.AreEqual(ParameterMode.Immediate, IntCodeProgram.OcodeParameterMode(11204, 2));
Exemplo n.º 5
0
 public void ParameterMode_ParameterB_InRelative() => Assert.AreEqual(ParameterMode.Relative, IntCodeProgram.OcodeParameterMode(2001, 1));
Exemplo n.º 6
0
 public void ParameterMode_ParameterB_InImmediate() => Assert.AreEqual(ParameterMode.Immediate, IntCodeProgram.OcodeParameterMode(1101, 1));
Exemplo n.º 7
0
 public void ParameterMode_ParameterB_InPosition2() => Assert.AreEqual(ParameterMode.Position, IntCodeProgram.OcodeParameterMode(120104, 1));
Exemplo n.º 8
0
 public void ParameterMode_ParameterA_InRelative2() => Assert.AreEqual(ParameterMode.Relative, IntCodeProgram.OcodeParameterMode(120204, 0));
Exemplo n.º 9
0
 public void ParameterMode_ParameterA_InPosition() => Assert.AreEqual(ParameterMode.Position, IntCodeProgram.OcodeParameterMode(001, 0));