Чему научился:
Стал лучше понимать рекурсию, повторил работу с выводом информации на консоль.
Что было сложным:
Понять алгоритм рекурсивной заливки.
Комментарии:
Евгений Витольдович, благодарю за этот прекрасный пример объяснения работы рекурсии, все наглядно и понятно.
Однако первоначально не все было очевидно. Логически-то понятно, например, сначала закрашиваем вверх, потом вниз, потом влево, потом вправо и если дошли до тупика (то есть, условие выхода из рекурсии - закрашенная клетка), то тогда рисуем звездочку и выходим из функции. И технически было понятно, что тут используется своего рода механизм "раскрутки" стека и поэтому мы всегда знаем куда вернемся, главное, чтобы было определено условие выхода из рекурсии.
Были проблемы другого рода: понять, как все это вместе работает, особенно когда вложенность вызовов становится большой :) Поэтому решил пошагово проверить работу алгоритма, вместо Thread.Sleep() написал Console.ReadKey() и медленно, но верно смотрел что выдает программа при каждом вызове функции. Здесь еще хорошо подошло то, что показывается направление следующего хода, очень наглядно. В итоге, доволен результатом, спасибо :)