我開始爲國際象棋棋類遊戲製作8 x 8平方棋盤。但是,我想知道是否有任何提示創建廣場,而不是Java中的二維數組。爲棋牌遊戲創建棋盤演示文稿
分配限制之一不允許使用二維數組或任何類似的。沒有AI,只有用戶控制。
我開始爲國際象棋棋類遊戲製作8 x 8平方棋盤。但是,我想知道是否有任何提示創建廣場,而不是Java中的二維數組。爲棋牌遊戲創建棋盤演示文稿
分配限制之一不允許使用二維數組或任何類似的。沒有AI,只有用戶控制。
可以使用一維陣列,說Figure [] board = new Figure[64]
和做一個簡單的getter/setter方法來模擬2-尺寸:
Figure get(int hor, int vert) {
return board[hor*8+ver];
}
void set(int hor, int vert, Figure f) {
board[hor*8+ver] = f;
}
你可以使用一個1個維陣列或ArrayList
,然後除以8和使用結果和其餘部分來知道你需要去哪一列和哪一行。
然後,您可以反過來工作以獲取陣列中相應棋盤部分的位置。
您還可以使用地圖:
private Map<String, Figure> board = new HashMap<String, Figure>();
private String positionToString(int hor, int vert) {
return hor + " " + vert;
}
public Figure get(int hor, int vert) {
return board.get(positionToString(hor, vert));
}
public void set(int hor, int vert, Figure fig) {
board.put(positionToString(hor, vert), fig);
}
也許你能逃脫,甚至沒有創建一個廣場的第一個地方?
代表國際象棋棋盤的一種替代方式將只是一個棋子列表和他們各自的座標。
如果不是太相似,可以使用1D數組。 – Thilo