2015-11-02 96 views
0

我的箱子數組:如何將長度分成與提醒相等的部分?

class Box { 
    int x1, y1, x2, y2; 
} 

假設我們需要創建一個框的表。

Box[][] table; 

我知道箱子的寬度和高度以及桌子的高度。這是我建立表格的方法。

public Box[][] table(int boxSize, int xBound, int yBound) { 
    Box[][] boxes = new Box[xBound/boxSize][xBound/boxSize]; 
    for (int x = 0; x < xBound; x += boxSize) { 
     for (int y = 0; y < yBound; y += boxSize) { 
      boxes[x % xBound/boxSize][y % yBound/boxSize] = new Box(x, y, x + boxSize, y + boxSize); 
     } 
    } 
    return boxes; 
} 

但問題是reminder。如果我們需要將表格寬度設置爲24並將高度設置爲22並將框大小設置爲5,那麼我們會得到ArrayIndexOutOfBoundsException。如果存在提醒,我想爲它創建一個小方框並將其添加到表格中。

[0-5, 0-5] | [5-10, 0-5] | [10-15, 0-5] | [15-20, 0-5] | [20-24, 0-5] 
... 
[0-5, 20-22] | ... 

我該怎麼辦?

回答

1

設置的箱子的數量是這樣的:

Box[][] boxes = new Box[(xBound - 1)/boxSize + 1][(yBound - 1)/boxSize + 1]; 

然後,當您創建的每個中,選中x + boxSize不大於xBound,與同爲y

+0

是的,它適用於我。感謝提示。 – Finkelson

相關問題