示例#1
0
        public static Rover TryToExecuteSequenceOfCommands(this Rover rover, string commands)
        {
            var listOfCommands = commands.ToCharArray().ToList();

            foreach (var item in listOfCommands)
            {
                if (rover.WantedState.Equals(rover.CurrentState))
                {
                    rover.WantedState = rover.CommandsFactory.TryCreate(item).Execute(rover.CurrentState);
                    rover.TryToChangeState(rover.WantedState);
                }
            }
            return(rover);
        }