我正在使用遞歸方法打開掃雷器,以打開與塊「0」相鄰的所有瓦片。線程「AWT-EventQueue-0」中的異常java.lang.ArrayIndexOutOfBoundsException:10
一切順利,直到我得到我在標題中提到的異常。例外情況發生在if(removalList[num1][num2] == 1){return;}
,但確保將刪除列表中的所有初始值設置爲零。 (供您參考,1
表示該物品已被添加到removalList
以備以後使用)。
我也檢查過是否在界限內做if(num1 > gameWidth || num2 > gameHeight || num1 < 0 || num2 < 0){return;}. (gameHeight and width are both 10)
,但由於某種原因它認爲它出界了。
感謝您的幫助!
private void function(int c5, int r5)
{
int num1 = c5;
int num2 = r5;
if(num1 > gameWidth || num2 > gameHeight || num1 < 0 || num2 < 0)
{
return;
}
if(removalList[num1][num2] == 1)
{
return;
}
if(blocks[num1][num2] == 0)
{
System.out.println("Added (" + num1 + ", " + num2 + ") to removal list.");
removalList[num1][num2] = 1;
function(num1-1, num2);
function(num1, num2-1);
function(num1+1, num2);
function(num1, num2+1);
}
else if(blocks[num1][num2] > 0 && blocks[num1][num2] < 9)
{
removalList[num1][num2] = 1;
return;
}
else
{
return;
}
}
謝謝,我完全錯過了! – user2052855 2013-04-23 06:26:12