1

ボタンの 8 x 8 線形レイアウトがあります。ボグルに似た小さなゲームを作成しています。ボタンをクリックすると、周囲のボタンを除くすべてのボタンを無効にしたいと考えています。これには、端のボタンも含まれます。基本的に、このゲームのロジックを開始するには、いくつかの助けが必要です. どんな助けでも大歓迎です。これまでのところ、プログラムの構造と、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>>();

次に、このマップには、各ボタンについて、その周囲のボタンのリストが取り込まれます。残念ながら、この時間にこれを簡単に行う方法がわかりません。すべてのボタンを単一のリストに追加し、現在のボタンのインデックス +/- 8 modulo いくつかのインデックスを使用してそれらを選択するようなことを考えています...手動で追加するのも同じくらい簡単かもしれません。

マップの準備ができたら、周囲のボタンを無効にするのは非常に簡単です。

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

編集:

質問を間違って読んでください。 周囲のボタンを除くすべてのボタンを無効にする アイデアは引き続き適用されます。無効にするすべてのボタンを、マップ内のボタンに関連付けられたリストに追加するだけです。

于 2013-09-24T01:11:16.517 に答える