2

我写了一个安卓应用。它是旧棋盘游戏 Connect 4 的简单版本。目前,我的“棋盘”对象包含已放置在棋盘上的计数器。这场比赛有 2 名玩家。

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

boardObj.addCounter("red", column);

在 addCounter() 函数的板对象内部,它执行类似的操作

column3.add(playerColor);

因此 ArrayList column3 添加了另一个项目,依此类推。

我的问题是 - 与使用 7 ArrayLists 相比,我可以使用更好的数据结构吗?我注意到,在将计数器添加到板上后调用的检查是否有胜利的函数在 CPU 方面变得相当昂贵。什么结构可以让我获取和设置数据并以最佳性能运行我的 checkwin() 算法?

4

1 回答 1

2

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

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

于 2012-10-23T22:56:45.073 回答