static Program obj = new Program();
public static void Main(string[] args)
Console.WriteLine("Введите размер поля");
Console.Write("Ширина поля (максимальное значение 50): ");
width = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы ввели неправильное число. Попробуйте ещё раз!");
Console.Write("Ширина поля (максимальное значение 50): ");
width = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы ввели неправильные данные. Надо указать правильное число. Попробуйте ещё раз");
Console.Write("Высота поля (максимальное значение 50): ");
height = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы ввели неправильное число. Попробуйте ещё раз");
Console.Write("Высота поля (максимальное значение 50): ");
height = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы ввели неправильные данные. Надо указать число. Попробуйте ещё раз");
int number = (width / 2) * (height / 2);
Console.Write("Введите количество мин на поле (максимальное значение {0}): ", number);
bombsCount = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы ввели неправильное число. Попробуйте ещё раз");
Console.Write("Высота поля (максимальное значение {0}): ", number);
bombsCount = Convert.ToInt32(Console.ReadLine());
} while (bombsCount > number);
Console.WriteLine("Вы ввели неправильные данные. Надо указать число. Попробуйте ещё раз");
mas = obj.MapGenerator(width, height, bombsCount);
for (int i = 1; i <= height; i++)
Console.WriteLine(mas[i]);
string[] MapGenerator(int width, int height, int bombsCount)
Random rnd = new Random();
string[] map = new string[height + 2];
for (int i = 0; i < height + 2; i++)
for (int j = 0; j < width + 2; j++)
while (number < bombsCount)
int indexH = rnd.Next(1, height + 1);
int indexW = rnd.Next(1 ,width + 1);
if (map[indexH][indexW] != '*')
map[indexH] = map[indexH].Insert(indexW, '*'.ToString());
map[indexH] = map[indexH].Remove(indexW + 1, 1);
for (int i = 1; i < height + 1; i++)
for (int j = 1; j < width + 1; j++)
if (map[i - 1][j - 1] == '*') number++;
if (map[i - 1][j] == '*') number++;
if (map[i - 1][j + 1] == '*') number++;
if (map[i][j - 1] == '*') number++;
if (map[i][j + 1] == '*') number++;
if (map[i + 1][j - 1] == '*') number++;
if (map[i + 1][j] == '*') number++;
if (map[i + 1][j + 1] == '*') number++;
map[i] = map[i].Insert(j, number.ToString());
map[i] = map[i].Remove(j + 1, 1);
for (int i = 1; i < height + 1; i++)
map[i] = map[i].Remove(0, 1);
map[i] = map[i].Remove(width, 1);