Gameover no jogo da memoria

3 respostas
E

Eu estou com duvida de como fazer um GAME OVER, no jogo da memoria depois de 3 tentativas erradas
e um YOU WIN ,se COMPLETA TODO O JOGO.

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class JogoMemoria extends JFrame implements ActionListener {
	JPanel painel = new JPanel();
	MeuBotao[] vbtn = new MeuBotao[16];
	MeuBotao btn = new MeuBotao(null);
	MeuBotao aux = new MeuBotao(null);
	MeuBotao aux1 = new MeuBotao(null);
	
	public JogoMemoria(){
		painel.setLayout(new GridLayout(4,4));
		setTitle("Jogo da Memória valendo 5 pontos eim :)");
		setSize(720,540);
		for(int i=0;i<16;i++){
		vbtn[i] = new MeuBotao(new ImageIcon("smile"+i/2+".jpg"));
		vbtn[i].addActionListener(this);
		vbtn[i].id = i/2;
		}
		embaralhar(vbtn);
		for(int i=0; i<16;i++){
		painel.add(vbtn[i]);
		}
		setContentPane(painel);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setResizable(false);
		setVisible(true);
		}
	
	public void embaralhar(MeuBotao[] btn){
		MeuBotao aux;
		int a;
		Random r = new Random();
		for(int i=0;i<16;i++){
		a = r.nextInt(r.nextInt(16)+1);
		aux=btn[a];
		btn[a]=btn[i];
		btn[i] = aux;
		}
		}//Fim do Método embaralhar

		int cont =0;
	
	@Override
	public void actionPerformed(ActionEvent ev) {
		btn = (MeuBotao)ev.getSource();
		if((!btn.acertou)&&(aux!=btn)&&(!btn.bloqueio)){
			//System.out.println("Cont: "+cont);
			if((aux1.virada)&&(!aux1.acertou)){
			aux1.virar();
			aux.virar(); 
			}
			btn.virar();
			if(cont==0){
			aux = btn;
			}
			//System.out.print(btn.id+" ");
			//System.out.print(aux.id+" ");
			if(cont>0){
			if(btn.id != aux.id){
			aux1=btn;
			aux1.virar();
			btn.virar();
			}else{
			aux.acertou=true;
			btn.acertou=true;
			}
			}
			cont++;
			if(cont>1){
			cont =0;
			}


			}
			}

	
	
	public static void main(String[] args) {
		new JogoMemoria();	

	}

}
import javax.swing.ImageIcon;
import javax.swing.JButton;

public class MeuBotao extends JButton {
	ImageIcon imagem;
	boolean virada,acertou,bloqueio;
	int id;
	
	public MeuBotao(ImageIcon imagem){
		this.imagem = imagem;
		virada = false;
		acertou =false;
		bloqueio= false;
		
	}
	
	public void virar(){
		if (virada)
			setIcon(null);
		else
			setIcon(imagem);
		virada = !virada;
	}
	public void setAcertou(){
		this.bloqueio = true;
		this.acertou = true;
		}
		public void setBloqueio(boolean bloqueio){
		this.bloqueio=bloqueio;
		}
		public static boolean ganhou(MeuBotao[] btn){
		for(int i=0;i<12;i++){
		if(!btn[i].acertou)
		return false;
		}
		return true;
		}

}

3 Respostas

thegoergen

Você que fazer algo que ocupe a tela cheia? Ou só dar a mensagem?

para só abrir um aviso, pode usar o JOptionPane.showMessageDialog.

E

isso eu sei
mais eu quero sbaer como fazer um metodo, para quando passa 3 tentativas erradas, o jogo finalize indicando game over, e se O JOGADOR ganhar o jogo finalize com o YOU WIN.

renzonuccitelli

Mantenha uma variável para contar os erros do jogador. Se chegar a ter vc da a mensagem de game over. Se ele conseguir chegar ao fim, vc apresenta a mensagem de vencedor…

Criado 24 de novembro de 2008
Ultima resposta 24 de nov. de 2008
Respostas 3
Participantes 3