我正在尝试使用Java制作记忆游戏。该游戏基本上将是网格中的一些正方形,目前为4x4仅用于测试目的。我已经创建了我的Square类,并编写了我希望他们在该类中执行的操作,然后在另一个类中创建了一个方形对象来处理"正常模式"游戏现在因为我有一个4x4的正方形网格,我需要制作16个不同的正方形(或者至少是我现在想的那个)。我还需要在相应的位置画出Squares。
我的问题:创建其中16个Square对象的最有效方法是什么,同时仍然能够单独操作它们? (类似于每个都有自己的名字; Square,Square1,Square2等)。
我也在使用Slick2D库。
答案 0 :(得分:2)
如上所述,Square [] [] squareGrid = new Square [4] [4]是一个很好的方法; 然后你可以使用:
初始化所有16个 for (int i = 0; i < squareGrid.length; i++)
for(int j = 0; j < squareGrid[i].length; j++)
squareGrid[i][j] = new Square();
现在每个方块都自动拥有自己唯一的(row,col)id。 例如,
squareGrid[1][2].callSomeFunctionInSquareClass();
可用于操纵第2行第3列的方块。 通过这种方式,您将避免扫描所有正方形以获取网格上特定单元格中的那个,从而使其更有效。
快乐的编码:)
答案 1 :(得分:1)
您可以尝试Square[][] grid = new Square[4][4]
答案 2 :(得分:1)
我会使用Square [] []数组,例如Square[][] squares = new Square[4][4]
,然后在两个嵌套循环中使用所有16个Square进行初始化:
for (int x = 0; x < squares.length) x++)
for (int y = 0; y < squares[x].length; y++)
squares[x][y] = new Square(x, y);