Desabilitar Botoes - Campo Minado

2 respostas
mtfaoro

Eu toh fazendo um jogo de campo minado no Net Beans 5.5.1, onde que o jogo tem quatro classes, main, telaDoJogo, LogicaDoJogo, e BotãoDoJogo…
Na classe Botão do Jogo eh criado uma botão pai…q contem a classe LogicaDoJogo.
Eu não sei co,mo fazer para que quando clicado em um botão cujo o conteudo seja nulo, o jogo desabilite todos os outros botões adjacentes cujo o conteudo for nulo…

Alguem tem alguma idéia de como fazer isso???

vlw…

2 Respostas

F

Eu utilizaria uma matriz de booleans (ou botões, só que para ter um desempenho melhor, booleans) para fazer o mapamento dos botões (ativo/inativo).

A partir disso, desenvolva um metodo recursivo que analise os botões vizinhos de um botão e caso sejam nulos, dispara o metodo para sua logica e chama o recursivo para cada nulo…

*Visualmente falando, o método verificará as posições acima(i-1,j), abaixo(i+1,j), lado esquerdo(i,j-1), lado direito(i,j+1) … Lembrando que voce deverá criar antes de cada verificação pois poderá ocorrer erro na hora de apontar para uma posição inexistente da matriz. A lógica é… se eu tiver o vizinho, verifico. Você sabe que o botão tem vizinho a partir do tamanho da matriz.

Deve ter uma solução com desempenho melhor…
Mas se nao a encontrar, utiliza essa

thundercas

Utilize o método button.setEnabled(false) para o restante dos botões sempre que algum botão for clicado.

Criado 9 de dezembro de 2007
Ultima resposta 9 de dez. de 2007
Respostas 2
Participantes 3