Переделать код расстановки кораблей в метод - C#

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

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

Дан код (нашел на просторах интернета), нужно переделать его так, что бы он работал при помощи подпрограммы (метода) кто может, помогите:
    static void Main(string[]args)
        {
                string[,] A = new string[25, 25]; 
                int x,  y,  xt,  yt,  xd,  yd,  xd1,  yd1;
 
                Console.WriteLine("Введите кол-во палуб");
                int k = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите кол-во кораблей");
                int z = Convert.ToInt32(Console.ReadLine());
                bool clear = true; 
                Random rand = new Random(); 
 
                for (int i = 0; i <= 11; i++) 
                {
                    for (int n = 0; n <= 11; n++)
                    {
                        A[i, n] = "0";
 
                    }
                }

                while (k >= 1) 
                {

                    for (int u = 1; u <= z; u++)
                    {
                    Start:
                        clear = true;
                        x = rand.Next(2, 9);  
                        y = rand.Next(2, 9);
                        xt = x;
                        yt = y;

                        for (int i = 1; i < k; i++) 
                        {
                            if (A[yt, xt] == "0")
                            {
                                yt++;
                                clear = clear && true;
                            }
                            else
                            {
                                yt++;
                                clear = clear && false;
                            }
                        }

                        if (clear == false) 
                        {
                            clear = true;
                            yt = y;
                            for (int i = 1; i <= k; i++)
                            {
                                if (A[yt, xt] == "0")
                                {
                                    xt++;
                                    clear = clear && true;
                                }
                                else
                                {
                                    xt++;
                                    clear = clear && false;
                                }
                            }
                        }
 
                        if (clear == true)
                        {
                            xd = x - 1;
                            yd = y - 1;
                            xd1 = xt + 1;
                            yd1 = yt + 1;
                            for (int i = yd; i <= yd1; i++)
                            {
                                for (int n = xd; n <= xd1; n++)
                                {
                                    if (A[i, n] == "0")
                                    {
                                        clear = clear && true;
                                    }
                                    else
                                    {
                                        clear = clear && false;
                                    }
                                }
                            }
                            if (clear == true) 
                            {
                                for (int i = y; i <= yt; i++)
                                {
                                    for (int n = x; n <= xt; n++)
                                    {
                                        A[i, n] = "1";
                                    }
                                }
 
                            }
                            else
                            {
                                goto Start;
                            }
 
                        }
                    }
                    k--;
                }

            for (int i = 1; i <= 10; i++)
                {
                    Console.WriteLine(A[i, 1] + " " + A[i, 2] + " " + A[i, 3] + " " + A[i, 4] + " " + A[i, 5] + " " + A[i, 6] + " " + A[i, 7] + " " + A[i, 8] + " " + A[i, 9] + " " + A[i, 10]);
                }
                Console.ReadLine();
            }
сам код расставляет корабли.

Решение задачи: «Переделать код расстановки кораблей в метод»

textual
Листинг программы
                string[,] A = new string[25, 25]; 
                int x,  y,  xt,  yt,  xd,  yd,  xd1,  yd1;
 
                Console.WriteLine("Введите кол-во палуб");
                int k = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите кол-во кораблей");
                int z = Convert.ToInt32(Console.ReadLine());
                bool clear = true; 
                Random rand = new Random(); 
 
                for (int i = 0; i <= 11; i++) 
                {
                    for (int n = 0; n <= 11; n++)
                    {
                        A[i, n] = "0";
 
                    }
                }
 
 
                while (k >= 1) 
                {
 
 
                    for (int u = 1; u <= z; u++)
                    {
                    Start:
                        clear = true;
                        x = rand.Next(2, 9);  
                        y = rand.Next(2, 9);
                        xt = x;
                        yt = y;
 
 
 
                        for (int i = 1; i < k; i++) 
                        {
                            if (A[yt, xt] == "0")
                            {
                                yt++;
                                clear = clear && true;
                            }
                            else
                            {
                                yt++;
                                clear = clear && false;
                            }
                        }
 
 
                        if (clear == false) 
                        {
                            clear = true;
                            yt = y;
                            for (int i = 1; i <= k; i++)
                            {
                                if (A[yt, xt] == "0")
                                {
                                    xt++;
                                    clear = clear && true;
                                }
                                else
                                {
                                    xt++;
                                    clear = clear && false;
                                }
                            }
                        }
 
                        if (clear == true)
                        {
                            xd = x - 1;
                            yd = y - 1;
                            xd1 = xt + 1;
                            yd1 = yt + 1;
                            for (int i = yd; i <= yd1; i++)
                            {
                                for (int n = xd; n <= xd1; n++)
                                {
                                    if (A[i, n] == "0")
                                    {
                                        clear = clear && true;
                                    }
                                    else
                                    {
                                        clear = clear && false;
                                    }
                                }
                            }
                            if (clear == true) 
                            {
                                for (int i = y; i <= yt; i++)
                                {
                                    for (int n = x; n <= xt; n++)
                                    {
                                        A[i, n] = "1";
                                    }
                                }
 
                            }
                            else
                            {
                                goto Start;
                            }
 
                        }
                    }
                    k--;
                }
             
            
            for (int i = 1; i <= 10; i++)
                {
                    Console.WriteLine(A[i, 1] + " " + A[i, 2] + " " + A[i, 3] + " " + A[i, 4] + " " + A[i, 5] + " " + A[i, 6] + " " + A[i, 7] + " " + A[i, 8] + " " + A[i, 9] + " " + A[i, 10]);
                }
                Console.ReadLine();

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


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

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

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