Проверить существует ли связь через единицы от верхней строки массива до нижней - C#

Узнай цену своей работы

Формулировка задачи:

заполнить массив 5х5 единицами и нулями в случайном порядке и проверить существует ли связь через единицы от верхней строки массива до нижней. Помогите пожалуйста срочно

Решение задачи: «Проверить существует ли связь через единицы от верхней строки массива до нижней»

textual
Листинг программы
  1. class Program
  2. {
  3.     static int[, ,] arr = new int[5, 5, 2];
  4.     static bool Find;
  5.     static void Main()
  6.     {
  7.         Random rand = new Random();
  8.         do
  9.         {
  10.             Find = false;
  11.             for (int i = 0; i < 5; i++)
  12.                 for (int j = 0; j < 5; j++) arr[i, j, 0] = rand.Next(0, 2);
  13.             for (int i = 0; i < 5 && !Find; i++)
  14.             {
  15.                 for (int y = 0; y < 5; y++)
  16.                     for (int x = 0; x < 5; x++) arr[x, y, 1] = 0;
  17.                 if (i == 0) Print();
  18.                 if (arr[i, 0, 0] == 1) Go(i, 0);
  19.             }
  20.             if (Find) Print();
  21.             Console.WriteLine("Ещё?(Enter)");
  22.         } while (Console.ReadKey().Key == ConsoleKey.Enter);
  23.     }
  24.  
  25.     static void Go(int x, int y)
  26.     {
  27.         int[] dx = { 0, -1, 1, 0 };
  28.         int[] dy = { -1, 0, 0, 1 };
  29.         arr[x, y, 1] = 1;
  30.         if (y == 4) Find = true;
  31.         for (int i = 0; i < 4 && !Find; i++)
  32.             if (x + dx[i] > -1 && x + dx[i] < 5 && y + dy[i] > -1 && y + dy[i] < 5 &&
  33.                 arr[x + dx[i], y + dy[i], 0] == 1 && arr[x + dx[i], y + dy[i], 1] == 0) Go(x + dx[i], y + dy[i]);
  34.         if (!Find) arr[x, y, 1] = 0;
  35.     }
  36.  
  37.     static void Print()
  38.     {
  39.         Console.WriteLine();
  40.         for (int y = 0; y < 5; y++)
  41.         {
  42.             for (int x = 0; x < 5; x++)
  43.             {
  44.                 if (arr[x, y, 1] == 0) Console.ForegroundColor = ConsoleColor.White;
  45.                 else Console.ForegroundColor = ConsoleColor.Red;
  46.                 Console.Write(arr[x, y, 0] + " ");
  47.             }
  48.             Console.WriteLine();
  49.         }
  50.     }
  51. }

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


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

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

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы