//Выполняет введенную команду public void ExecuteCommand(string input) { if (input.Length == 1) { char commandDirection = input[0]; //Отмена последней команды if (commandDirection == 'c') { //Если стек команд не пуст if (rover._commands.Count != 0) { //Взять и удалить последнюю команду из стека ICommand c = rover._commands.Pop(); //Отменить эту команду c.Undo(); } } else { //Создать новую команду на передвижение var command = new RoverCommand(commandDirection, rover); //Выполнить ее command.Execute(); } } }