Beispiel #1
0
        public void Solve(string fileText)
        {
            var lines = new Queue <string>(fileText.SplitIntoLines());

            var startStateName     = CaptureSubstringWithPattern(lines.Dequeue(), "Begin in state (\\w+).");
            var numberOfIterations = CaptureIntWithPattern(lines.Dequeue(), "after (\\d+) steps");

            var transitions = ParseTransitions(lines);

            var turingMachine = new TuringMachine(startStateName, transitions);

            turingMachine.RunForIterations(numberOfIterations);
            var answer = turingMachine.GetChecksum();

            Output.Answer(answer);
        }