我正在用Java創建一個基於文本的掃雷遊戲。如果用戶創建了一個遊戲板一個完美的正方形遊戲工作正常,但是如果他們進入兩個不同的值,我得到在點一個例外,我添加了礦山的二維數組:索引超出使用二維數組時的界限
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 19
at Grid.addMines(Grid.java:77)
添加礦山(77行是if語句):
public void addMines()
{
Random generator = new Random();
int count = 0;
while (count < numMines)
{
int x = generator.nextInt(rows);
int y = generator.nextInt(columns);
if (grid[x][y].minePresent == false)
{
grid[x][y].setCurrent("*");
grid[x][y].minePresent = true;
count++;
}
else
continue;
}
}
事實證明這是正確的,因爲當我創建2d數組時,我已經在第一個for循環中定義了列,在第二個循環中定義了其他地方的列。謝謝 – rambossa
沒錯。很高興我能幫上忙。乾杯! – Dropout
@Mrambo:你真的需要制定出一致的術語即可。它的罰款決定是在訪問數組時把行號第一或列數第一,但瞭解自己在做什麼。也許它會更清晰,如果你使用'column'和'row'來代替'x'和'y'。我會編輯我的答案。 –