C# Работа цикла
Подскажите пожалуйста из за чего второй раз выводится символ #
namespace Test
{
class Program
{
static void Main(string[] context)
{
char[,] map = ReadMap();
DrawMap(ref map);
Console.ReadKey();
}
static char[,] ReadMap()
{
char[,] map = new char[5, 10];
for (int i = 0; i < map.GetLength(0); i++)
{
for (int j = 0; j < map.GetLength(1); j++)
{
map[i, j] = '.';
}
}
return map;
}
static void DrawMap(ref char[,] map)
{
int count = 1;
Random random = new Random();
for (int i = 0; i < map.GetLength(0); i++)
{
for (int j = 0; j < map.GetLength(1); j++)
{
int mapX = random.Next(1, map.GetLength(0) - 1);
int mapY = random.Next(1, map.GetLength(1) - 1);
Console.Write(map[i, j]);
if (map[mapX, mapY] == '.' && count > 0)
{
Console.Write(map[mapX, mapY] = '#');
count--;
}
}
Console.WriteLine();
}
}
}
}```
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
Ваши случайные индексы могут соответствовать элементу массиву, который Вы еще не прошли в двойном цикле.
Автор решения: Fle2x
→ Ссылка
Console.Write(map[mapX, mapY] = '#');
Изменил на
map[mapX, mapY] = '#';
и все как надо заработало )