Thread em jogo da memória

0 respostas
D

Peguei um jogo da memória e dei uma implementada nele.
Ele está funcionando 100%, só que da seguinte maneira:

  • Eu clico em uma imagem (1º clique) e depois clico em outra imagem (2º clique). Se as imagens forem diferentes, ao clicar em uma outra imagem (que seria o 1º clique novamente) as duas anteriores que eu cliquei voltam para a imagem padrão (desviram).

O que eu queria fazer era o seguinte:

  • Eu clico em uma imagem (1º clique) e depois clico em outra imagem (2º clique). Se as imagens forem diferentes, as duas imagens devem voltar para a imagem padrão, tipo da um tempinho de 1 seg. e voltar para as imagens padrão (desvirar).

segue abaixo o codigo de implementação:

public class PrincipalListener implements ActionListener {  
   
    private PrincipalGUI principalGUI;  
    private Object botaoClicadoUm = new Object();  
    private Object botaoClicadoDois = new Object();  
    private boolean primeiroClique = true;  
    private boolean acertou = true;  
    private Botao botaoUm, botaoDois;  
   
    public PrincipalListener(PrincipalGUI principalGUI) {  
       this.principalGUI = principalGUI;  
    }  
   
    @Override  
    public void actionPerformed(ActionEvent actionEvent) {  
       if (actionEvent.getActionCommand().equals("imagem")) {  
          validarAcoes(actionEvent);  
       }  
    }  
   
    public void validarAcoes(ActionEvent actionEvent) {  
       if (primeiroClique) {  
          principalGUI.getJogo().incrementarJogadas();  
          principalGUI.getJogadasJLabel();  
          if (!acertou) {  
             botaoUm = (Botao) botaoClicadoUm;  
             botaoDois = (Botao) botaoClicadoDois;  
             botaoUm.setImagemPadrao();  
             botaoDois.setImagemPadrao();  
          }  
          botaoClicadoUm = actionEvent.getSource();  
          botaoUm = (Botao) botaoClicadoUm;  
          botaoUm.setImagemBotao();  
          primeiroClique = !primeiroClique;  
       } else {  
          botaoClicadoDois = actionEvent.getSource();  
          botaoDois = (Botao) botaoClicadoDois;  
          if (botaoClicadoDois == botaoClicadoUm) {  
             acertou = false;  
          } else {  
             botaoDois.setImagemBotao();  
             if (botaoUm.getImagemBotao().equals(botaoDois.getImagemBotao())) {  
                acertou = true;  
                principalGUI.getJogo().incrementarQuantidadeAcertos();  
                botaoUm.setEnabled(false);  
                botaoDois.setEnabled(false);  
                principalGUI.getJogo().incrementarPontos();  
                principalGUI.getPontuacaoJLabel();  
                if (principalGUI.getJogo().getQuantidadeAcertos() == ((6 * 6) / 2)) {  
                   JOptionPane.showMessageDialog(principalGUI,  
                         "Parabéns, você ganhou!!!");  
                   System.exit(0);  
                }  
             } else {  
                acertou = false;  
                principalGUI.getJogo().decrementarPontos();  
                principalGUI.getPontuacaoJLabel();  
             }  
             primeiroClique = !primeiroClique;  
          }  
       }  
    }  
 }
Criado 28 de maio de 2010
Respostas 0
Participantes 1