Закрашивание изображения с помощью рекурсии - 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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы