[英]Store 2D Array Index in ArrayList?
我正在编写《战舰》游戏,我需要某种方式来跟踪船只的放置位置。 我在想最好的方法是使用ArrayList。 如果我存储放置在船中的索引,则可以遍历ArrayList表示它是无效位置。 例如,如果我有一个像这样的循环:
for (int j = 1; j < SIZE; j++)
{
for (int k = 1; k < SIZE; k++)
{
if ((cell[j][k].contains(click)))
{
cell[j][k].setColor(Color.blue);
}
}
}
我想将单元格[j] [k]的位置存储在ArrayList中,然后当用户放船时,将运行for循环以确定该单元格是否被占用。 问题是当我尝试添加到ArrayList时,我添加的是实际单元格,而不是索引。 我希望将实际位置(x,y)存储在列表中,但是现在我正在存储实际元素。
存储x和y值的列表是使用Java的点类的理想情况。
ArrayList<Point> shipPositions = new ArrayList<Point>();
shipPositions.add(new Point(0, 0));
点的ArrayList
可以轻松修改和迭代,以添加和删除飞船位置。
您可以为每艘船制作一个单独的对象。 您可以使用x和ay浮点数(或使用Point保持简单)来制作一个相当简单的类,然后像这样制作一系列船只
Ship[] ships = new Ship[n];
要么
ArrayList<Ship> ships = new ArrayList<Ship>();
然后您可以在ships.get(n)
ships[n]
(对于第一个示例)或ships.get(n)
(对于第二个示例)处获取值。
这样一来,您不仅可以在位置上使用此数组,还可以最大限度地减少多余和不必要的代码。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.