示例#1
0
        public static MarsRoverInput Parse(string marsRoverInput)
        {
            var inputParts    = marsRoverInput.Split(InputSeparator);
            var gridInput     = inputParts[0].Split(' ');
            var positionInput = inputParts[1];
            var commandsInput = inputParts[2];

            var trackingModule = new TrackingModule
            {
                GridMaximumX = int.Parse(gridInput[0]),
                GridMaximumY = int.Parse(gridInput[1]),
                Position     = ParsePosition(positionInput)
            };

            var commandModule = new CommandModule(ParseCommandChain(commandsInput));

            return(new MarsRoverInput
            {
                TrackingModule = trackingModule,
                CommandModule = commandModule
            });
        }
示例#2
0
        public void Execute(TrackingModule trackingModule)
        {
            trackingModule.Position.Orientation = RotationMappings[trackingModule.Position.Orientation];

            _nextCommandInChain?.Execute(trackingModule);
        }