Java游戏数据结构

时间:2012-10-23 22:52:59

标签: java android coding-style

我写了一个Android应用程序。它是旧棋盘游戏Connect 4的简单版本。目前我的“Board”对象包含已经放在棋盘上的计数器。这个游戏有2个玩家。

Board类由7个ArrayList对象组成,每个对象代表一个板上的一列(该板是x 6向上的7)。因此,例如当红色玩家点击屏幕上的第三列时,我会调用

boardObj.addCounter("red", column);

并且在addCounter()函数中的board对象内部,它执行类似

的操作
column3.add(playerColor);

所以ArrayList column3会添加另一个项目等等。

我的问题是 - 是否有更好的数据结构我可以使用而不是使用7个ArrayLists?我注意到,在计数器被添加到电路板之后,检查是否存在获胜的功能在CPU方面变得非常昂贵。什么结构允许我获取和设置数据并以最佳性能运行我的checkwin()算法?

1 个答案:

答案 0 :(得分:2)

你有一个7x6的电路板,你需要测试同一行,列或对角线上的元素。

二维数组是最明显的选择。我会用那个。