public override void Run() { base.Run(); var loop = false; var i = -1; while (!loop) { i++; var asm = new Assembunny(new Dictionary <string, int>() { { "a", i }, { "b", 0 }, { "c", 0 }, { "d", 0 } }); try { asm.Execute(inputs, false, ValidateOutput); } catch (NotSupportedException) { } catch (VeryLongException e) { loop = true; } } firstResult = i.ToString(); }
public override string Part1(string input, object?args) { var a = new Assembunny { Code = input }; a.Run(); return(a.Registers["a"].ToString()); }
public void SomeTest() { var asm = new Assembunny(); asm.Cpy("0", "a"); asm.Cpy("2", "b"); asm.Cpy("0", "c"); Assert.Equal(0, asm.GetRegister("a")); asm.Inc("a"); Assert.Equal(1, asm.GetRegister("a")); asm.Cpy("b", "c"); Assert.Equal(2, asm.GetRegister("c")); Assert.Equal(2, asm.Jnz("1", "2")); Assert.Equal(0, asm.Jnz("0", "2")); Assert.Equal(-2, asm.Jnz("c", "-2")); Assert.Equal(2, asm.Jnz("b", "2")); asm.Cpy("0", "c"); Assert.Equal(0, asm.Jnz("c", "2")); }
public override void Run() { base.Run(); // First Part var firstProgram = new Assembunny(); firstProgram.Execute(inputs); firstResult = firstProgram.GetRegisterValue("a").ToString(); // Second Part var secondProgram = new Assembunny(new Dictionary <string, int>() { { "a", 0 }, { "b", 0 }, { "c", 1 }, { "d", 0 } }); secondProgram.Execute(inputs); secondResult = secondProgram.GetRegisterValue("a").ToString(); }
public override void Run() { base.Run(); var firstProgram = new Assembunny(new Dictionary <string, int>() { { "a", 7 }, { "b", 0 }, { "c", 0 }, { "d", 0 } }); firstProgram.Execute((string[])inputs.Clone()); firstResult = firstProgram.GetRegisterValue("a").ToString(); var secondProgram = new Assembunny(new Dictionary <string, int>() { { "a", 12 }, { "b", 0 }, { "c", 0 }, { "d", 0 } }); secondProgram.Execute((string[])inputs.Clone(), true); secondResult = secondProgram.GetRegisterValue("a").ToString(); }