Exemple #1
0
        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();
        }
Exemple #2
0
    public override string Part1(string input, object?args)
    {
        var a = new Assembunny {
            Code = input
        };

        a.Run();
        return(a.Registers["a"].ToString());
    }
Exemple #3
0
        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"));
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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();
        }