Закрашивание изображения с помощью рекурсии - C#
Формулировка задачи:
Неподъемный груз для 10-ого класса.
Я совершенно не могу догнать первое задание по теме рекурсия, приведите пример хотя бы для первого рисунка, второй я уже сам додумаю, буду очень признателен.
Решение задачи: «Закрашивание изображения с помощью рекурсии»
textual
Листинг программы
class Program
{
static void Main()
{
string[] a={" *** *** ",
" * *** * ",
" * * ",
" * * ",
"* *** *",
"* * * *",
"* * * *",
"* * * *",
"* * * *",
"* * * *",
"* *** *",
"* *",
"***************"};
char[][] b = new char[a.Length][];
for (int y = 0; y < a.Length; y++) b[y] = a[y].ToCharArray();
print(b);
Console.WriteLine();
func(b, 8, 2);
print(b);
Console.ReadKey();
}
static void func(char[][] b, int x, int y)
{
b[y][x] = 'X';
if (b[y - 1][x] == ' ') func(b, x, y - 1);
if (b[y][x + 1] == ' ') func(b, x + 1, y);
if (b[y + 1][x] == ' ') func(b, x, y + 1);
if (b[y][x - 1] == ' ') func(b, x - 1, y);
}
static void print(char[][] b)
{
for (int y = 0; y < b.GetLength(0); y++)
{
for (int x = 0; x < b[y].Length; x++)
{
Console.Write(b[y][x]);
}
Console.WriteLine();
}
}
}