2013-09-24 77 views
1

我有一個8乘8線性佈局的按鈕。我正在製作一個類似於boggle的小遊戲,當我點擊一個按鈕時,我希望能夠禁用除周圍按鈕之外的所有按鈕。這也涉及到邊緣的按鈕。我基本上需要一些幫助來啓動這個遊戲的邏輯。任何幫助表示讚賞。我到目前爲止已經考慮過程序的結構以及8乘8圖可能如何激活其鄰居,也許如果我可以訪問每個按鈕的單元格,我可以進一步發展。謝謝。當我點擊一個按鈕,我想只激活其周圍的按鈕。這怎麼可能?

+0

我想如果我嘗試這樣做,我會有一個二維數組按鈕,所有這些數組都被調用回到同一個控制器,該控制器在遊戲狀態發生變化時處理啓用/禁用按鈕的邏輯。我對boggle不熟悉,但這可能是我嘗試處理你正在做的事情的方式。 – Prmths

+0

ALSO: 試試這個鏈接,它是一個java實現的boggle:http://www.gtoal.com/wordgames/duke_boggle/joggle/ – Prmths

回答

1

擴展按鈕並根據他們的鄰居是誰給每個按鈕Buttonlisteners。根據你如何將它們連接在一起,每個按鈕都會有一個按鈕監聽器綁定到它的每個鄰居。如果你不希望使用對角線鄰域,按鈕將有5個buttonlisteners的最大值(如果按鈕是聽它自己的按鈕))

0

這應該是可以使用簡單的地圖來實現:

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

然後,此地圖對每個按鈕都填充了其周圍按鈕的列表。不幸的是,我不知道如何在這個時候輕鬆地做到這一點。 我在想,像是將所有按鈕添加到單個列表中,然後使用當前按鈕的索引+/- 8取模索引來選取它們...手動添加它們可能同樣簡單。

當地圖準備就緒時,禁用周圍的按鈕非常簡單。

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

編輯:

閱讀的問題錯了,但; 禁用所有按鈕,除了爲其周圍的按鈕 這個想法仍然適用,只需將所有您希望禁用的按鈕添加到與地圖中的按鈕相關聯的列表。

相關問題