[英]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.