Flood Fill продолжает выдавать ошибку StackOverflowError - PullRequest
0 голосов
/ 06 апреля 2019

У меня проблемы с алгоритмом заливки. Я продолжаю получать ошибку StackOverflowError и не могу понять, почему. Иногда это работает, а иногда нет. Что-то не так с моим кодом?

Спасибо!

Я пытался заполнить случайные объекты на моем изображении, и, похоже, это работает для случайных случаев, в других случаях это не так.

public void fill(int x, int y, Color c1, Color c2){


    if(x < 0) return;
    if(y < 0) return;
    if(x >= img.getWidth()) return;
    if(y >= img.getHeight()) return;

    if(c1.getRGB()==c2.getRGB()) return;
    if(grid[x][y].getRGB()!=c1.getRGB())return;

    grid[x][y] = c2;

    fill(x+1,y,c1,c2);
    fill(x,y+1,c1,c2);
    fill(x,y-1,c1,c2);
    fill(x-1,y,c1,c2);

}
...