我在泡沫射击游戏工作。当我用相同颜色的射手泡泡击中泡泡时,我必须删除泡泡,并尝试搜索使用泡泡填充算法删除哪个泡泡。当射手泡沫触碰另一个泡沫我有一个错误:BubbleShooter游戏中的Flood-Fill算法
Exception in thread "Thread-1" java.lang.StackOverflowError
我实现的洪水填充算法:
public void floodFill(int disX, int disY){
//up
if(tab[disX][disY - 1] != null){
if (tab[disX][disY - 1].c == tab[disX][disY].c){
floodFill(disX, disY - 1);
tab[disX][disY - 1] = null;
}
}
//right
if(tab[disX + 1][disY] != null){
if (tab[disX + 1][disY].c == tab[disX][disY].c){
floodFill(disX + 1, disY);
tab[disX + 1][disY] = null;
}
}
//left
if(tab[disX - 1][disY] != null){
if (tab[disX - 1][disY].c == tab[disX][disY].c){
floodFill(disX - 1, disY);
tab[disX - 1][disY] = null;
}
}
//down
if(tab[disX][disY +1] != null){
if (tab[disX][disY +1].c == tab[disX][disY].c){
floodFill(disX, disY + 1);
tab[disX][disY + 1] = null;
}
}
}
泡泡触摸自己上下左右。
你知道我做错了吗?