Мой метод заливки вызывает ошибку переполнения стека - PullRequest
0 голосов
/ 24 сентября 2019

Итак, у меня есть этот простой и короткий метод, который должен выполнять заливку, но я всегда получаю ошибку stackoverflow.Я знаю, что подобные вопросы задавались, но я не могу найти подходящий ответ.Пожалуйста, если бы кто-то мог просто проверить мой код, я бы по-настоящему это оценил

* Я вызываю метод только один раз с координатами x = 0, y = 0

private int[,] Subsearch(int[,] chunkLightData, int x, int y)
{
    for (int i = x - 1; i <= x + 1; i++)
    {
        for (int j = y - 1; j <= y + 1; j++)
        {
            try
            {
                if (i == x && j == y)
                {
                    chunkLightData[i,j] = chunkLightData[i,j] == -1 || chunkLightData[i,j] == 2 ? 2 : 1;
                    continue;
                }
                else if (chunkLightData[i,j] == -1)
                {
                    int[] temp2 = { i, j };
                    toVisit.Push(temp2);
                }
            }
            catch (Exception e)
            {
                continue;
            }

        }
    }
    if (!(toVisit.Count==0))
    {
        int[] coordinates = toVisit.Pop();
        chunkLightData = Subsearch(chunkLightData, coordinates[0],coordinates[1]);
    }
    return chunkLightData;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...