Example #1
0
        protected override void PrepareSolution()
        {
            var cameras     = new ASCIIComputer(program);
            var imageString = cameras.RunString();

            scaffoldImageRows = InputParser.Split(imageString).ToArray();
        }
            public Droid(IEnumerable <BigInteger> program)
            {
                computer = new ASCIIComputer(program);
                var description = PerformAction("");

                UpdateRoomStatus(description);
                UpdateInventory();
            }
Example #3
0
        //Works if the routine doesn't require changing patterns on a straight section i.e. covering R12L8 with R6 + 6L8
        protected override void SolvePartTwo()
        {
            var testrobot  = new SimulationRobot(scaffoldImageRows);
            var greedyPath = testrobot.FindGreedyPath();
            var routine    = FindValidMovementRoutine(greedyPath, new List <string> [0], new int[0]);
            var robot      = new ASCIIComputer(program);

            resultPartTwo = routine.UploadToASCIIComputer(robot);
        }
Example #4
0
        public string UploadToASCIIComputer(ASCIIComputer computer)
        {
            computer[0] = 2; //Awaken robot
            computer.Run(string.Join(',', main.Select(mf => mf.ToString())));
            computer.Run(string.Join(',', a));
            computer.Run(string.Join(',', b));
            computer.Run(string.Join(',', c));
            var result = computer.Run("n");//turn camera off

            return(result.Last().ToString());
        }
        public SpringDroid(List <BigInteger> programming, bool toConsole)
        {
            outputToConsole = toConsole;
            brain           = new ASCIIComputer(programming);
            var prompt = brain.RunString();

            if (outputToConsole)
            {
                Console.Write(prompt);
            }
        }