我正在創建一個類似於應用程序的掃雷程序,並且有一些代碼旨在檢查一個非開採空間周圍有多少個地雷。我創建了一些這方面簡單的方法來忽略越界異常JAVA
int count = 0;
if(model.get(i-1, j-1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i, j-1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i-1, j) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i+1, j) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i, j+1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i-1, j+1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i+1, j-1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i+1, j+1) == MinerGridCo.UNTURNED_MINE){ count++;}
String mineNum = String.valueOf(count);
cell[i][j].setText(mineNum);
然而,當旨在繞過板邊緣煤礦數量這將產生錯誤。任何有用的方法來避免這一點?
嘗試下面的建議後。我仍然遇到了越界錯誤。任何人有任何建議,這裏是回購協議,如果有人想編譯它自己https://github.com/phillolivercomp/MineSweeper.git
什麼數據類型是'model'? – Zyerah 2014-08-29 17:26:00
忽略異常總是一個壞主意。編寫代碼來處理邊緣(字面上在這種情況下)而不是。例如,寫一個簽名爲'List getNeighbors(Cell cell)'的方法,給定一個單元格,返回一個有效的鄰居列表以供檢查。然後只檢查那些鄰居。 –
2014-08-29 17:26:21
|
那麼模型是一個GUI的模型元素,這只是一個類「MinerGridCo」的實例,它具有這些UNTURNED_MINE元素,這些元素只是特別聲明的整數。 – 2014-08-29 17:27:56