我在泡沫射擊遊戲工作。當我用相同顏色的射手泡泡擊中泡泡時,我必須刪除泡泡,並嘗試搜索使用泡泡填充算法刪除哪個泡泡。當射手泡沫觸碰另一個泡沫我有一個錯誤: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;
}
}
}
泡泡觸摸自己上下左右。
你知道我做錯了嗎?