public IntCodeStatus Run(params long[] inputs) { Status.Should().NotBe(IntCodeStatus.Stopped); (Status == IntCodeStatus.WaitingForInput && inputs.Length == 0).Should().BeFalse(); Status = IntCodeStatus.Running; Inputs.Should().BeEmpty(); Inputs = inputs.ToList(); RunInternal(); return(Status); }
public void Input(long output) { if (Inputs.Count == 0) { PC -= 2; Status = IntCodeStatus.WaitingForInput; return; } Memory[output] = Inputs.First(); Inputs = Inputs.Skip(1).ToList(); }
public void Terminate() { Status = IntCodeStatus.Stopped; }