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;
}
}
}
}