我正在寫一個3D掃雷式遊戲,所以給定一個[x] [y] [z],我需要計算假設它們不超出邊界值的周圍值。尋找一種有效的方式來總結一個3D陣列的周圍值
我的問題是不具有無數個檢查我怎麼可以這樣做:
if ((x>0)&&(x<ARRAY_SIZE))
對於x,y和z?
感謝
我正在寫一個3D掃雷式遊戲,所以給定一個[x] [y] [z],我需要計算假設它們不超出邊界值的周圍值。尋找一種有效的方式來總結一個3D陣列的周圍值
我的問題是不具有無數個檢查我怎麼可以這樣做:
if ((x>0)&&(x<ARRAY_SIZE))
對於x,y和z?
感謝
非常簡單:讓你的erray 2種元素在每一個尺寸更大的,然後做一個0幀周圍。您的循環全部從1運行到ARRAY_SIZE-1,並且訪問索引1和索引1不會再遇到麻煩,因爲您處於邊界之內。
如何編寫自己的定製類遊戲板,像
class Minesweeper3DBoard {
public MinesweeperField getField(int x, int y, int z) {
if (x < 0 || x >= ARRAY_SIZE || y < 0 || y >= ARRAY_SIZE || z < 0 || z >= ARRAY_SIZE) {
return NullMineSweeperField.Instance();
}
else {
return Fields_[x][y][z];
}
}
};
與NullMineSweeperField執行空對象和辛格爾頓模式,以及包含「真正的」領域Fields_?
這樣,你只有一個地方進行檢查。