Переделать код расстановки кораблей в метод - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д