2012-10-23 126 views
2

我寫過一個Android應用程序。這是舊版棋盤遊戲Connect 4的一個簡單版本。目前,我的「棋盤」對象擁有棋盤上的棋盤。這場比賽有2名球員。Java遊戲數據結構

Board類由7個ArrayList對象組成,每個對象代表板上的一個列(板子是7×6向上)。因此,例如,當紅色玩家點擊我打電話

boardObj.addCounter("red", column); 

,並在addCounter()函數董事會對象裏面確實有點像

column3.add(playerColor); 

這樣的ArrayList欄3屏幕上的第三列獲取另一個項目,等等。

我的問題是 - 是否有更好的數據結構,我可以使用,而不是使用7 ArrayLists?我注意到,在計算器添加到板子後,檢查是否存在贏的功能在CPU方面變得非常昂貴。什麼樣的結構可以讓我獲得和設置數據,並運行我的checkwin()算法以獲得最佳性能?

+0

有一個網站名爲[codereview](http://codereview.stackexchange.com/),我認爲近距離投票是爲了這個(很難確定,但)。 –

回答

2

您有一個7x6板,您需要測試同一行,列或對角線上的元素。

2維陣列是最明顯的選擇。我會用它。

+0

感謝雙重檢查 – brux