示例#1
0
        public bool IsInField(int x, int y)
        {
            executor.Reset();
            executor.AddInput(x);
            executor.AddInput(y);
            executor.Execute();

            var output = executor.program.output.Dequeue();

            return(output == "1");
        }
示例#2
0
        public string GetResult1()
        {
            executor.Reset();
            executor.AddInput(1);
            executor.Execute();

            var sb = new StringBuilder();

            while (executor.program.output.Count > 0)
            {
                sb.Append(executor.program.output.Dequeue());
                sb.Append(","); // eh whatever
            }

            return(sb.ToString());
        }
示例#3
0
        public string GetResult2()
        {
            executor.Reset();
            executor.program.SetAt(0, "2");
            executor.Execute();

            var A = "L,10,R,8,R,8\n";
            var B = "L,10,L,12,R,8,R,10\n";
            var C = "R,10,L,12,R,10\n";

            var total = "A,A,B,C,B,C,B,C,C,A\n";

            InputString(total);
            InputString(A);
            InputString(B);
            InputString(C);

            executor.AddInput('n');
            executor.AddInput('\n');

            var outputs = executor.program.output;

            return(outputs.Last());
        }
示例#4
0
        public string GetResult2()
        {
            ResetState();

            executor.Reset();
            executor.program.ISetAt(0, 2);

            executor.Execute();
            while (executor.program.Blocked)
            {
                UpdateState();
                executor.AddInput(GetInput());
            }
            UpdateState();

            return(Score.ToString());
        }
示例#5
0
 public void Start(int phaseSetting)
 {
     executor.Reset();
     executor.AddInput(phaseSetting);
     executor.program.Name = name + " running phase setting " + phaseSetting;
 }