Переделать код расстановки кораблей в метод - 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();