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(); }
//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); }
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); } }