Стартовая точка в волновом поиске - C#

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

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

Вот код, есть стартовая точка, а как от нее начать
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
 
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> lol = new List<int>();/// i stroka
            List<int> lol1 = new List<int>();//// j stroka
            int Start_i = 0;
            int Start_j = 0;
           int [,]  map = new int[,]{
               {1,0,0,0,0},
               {0,0,0,0,0},
               {0,0,0,0,0},
               {0,0,0,1,1},
               {0,0,0,0,0},
            };
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write(map[i,j] + " ");
                }
                Console.WriteLine();
            }
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    if (map[i, j] == 1)
                    {
                        map[i, j] = -2;
                    }
                    if (map[i,j] == 0)
                    {
                        lol.Add(i);
                        lol1.Add(j);
                         Start_i = lol[0];
                         Start_j = lol1 [0];
                    }
                }
            }
            Console.WriteLine();
            Console.WriteLine("Start i  " + Start_i + " " + "Strart j "+ Start_j);
            Console.WriteLine();
            Console.WriteLine(" obrabotanij massive");
            int step = 0;
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {               
                    ///какое условие надо что бы начиналось с стартовой точки   
                            if (i + 1 < 5 && map[i + 1, j] != -2 && map[i + 1, j] == 0)
                            {
                                map[i + 1, j] = step + 1;
                                // step++;
                            }
                            if (j + 1 < 5 && map[i, j + 1] != -2 && map[i, j + 1] == 0)
                            {
                                map[i, j + 1] = step + 1;
                                //step++;
                            }
                            if (i - 1 > 0 && map[i - 1, j] != -2 && map[i - 1, j] == 0)
                            {
                                map[i - 1, j] = step + 1;
                                // step++;
                            }
                            if (j - 1 > 0 && map[i, j - 1] != -2 && map[i, j - 1] == 0)
                            {
                                map[i, j - 1] = step + 1;
                                //step++;
                            }
                                           
                    step++;
                    Console.Write(map[i,j] + " ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}

Решение задачи: «Стартовая точка в волновом поиске»

textual
Листинг программы
int [,]  map = new int[,]{
               {1,0,0,0,0},
               {0,0,0,0,0},
               {0,0,0,0,0},
               {0,0,0,1,1},
               {0,0,0,0,0},
            };

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


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

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

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