1

我有一个 8 x 8 线性按钮布局。我正在制作一个类似于 boggle 的小游戏,当我单击一个按钮时,我希望能够禁用除周围按钮之外的所有按钮。这也涉及边缘的按钮。我基本上需要一些帮助来启动这个游戏的逻辑。任何帮助表示赞赏。到目前为止,我已经考虑过程序的结构以及 8 x 8 图形如何激活它的邻居,也许如果我可以访问每个按钮的单元格,我可以进一步前进吗?谢谢你。

4

2 回答 2

1

扩展 Button 并根据他们的邻居是谁为每个按钮分配 Buttonlisteners。每个按钮都会有一个按钮监听器,根据您将其绑定在一起的方式,将其绑定到它的每个邻居。如果您不想使用对角线邻居,则一个按钮最多可以有 5 个按钮侦听器(如果该按钮正在侦听它自己的按钮)。)

于 2013-09-24T01:10:04.240 回答
0

这应该可以使用简单的 Map 来完成:

Map<Button, List<Button>> surroundingButtons = new HashMap<Button, List<Button>>();

然后,对于每个 Button,此 Map 将填充其周围 Button 的列表。不幸的是,我不知道如何在这个时候轻松地做到这一点。我正在考虑将所有按钮添加到单个列表中,然后使用当前按钮的索引 +/- 8 模数索引来挑选它们......手动添加它们可能同样容易。

地图准备好后,禁用周围的按钮非常简单。

Button clickedButton; // not showing the onClickListener
for (Button sButton: surroundingButtons.get(clickedButton)) {
    sButton.setEnabled(false);
}

编辑:

读错了问题,但是; 禁用除周围按钮之外的所有按钮 该想法仍然适用,只需将您希望禁用的所有按钮添加到与地图中的按钮关联的列表中即可。

于 2013-09-24T01:11:16.517 回答