Jogo da Memoria
Pessoal fiz um jogo da memoria em java, mas não estou conseguindo fundir o menu com o jogo, pois queria que o menu ficasse em cima e o jogo em baixo, alguémpode me ajudar !!! desde já agradeço!!!
esse e o código da carta
Esse e do jogo da memoria
e esse é o menu
Aki estar as cartas
[img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221155.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221216.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221223.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221232.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221241.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221249.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221257.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221305.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221313.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221323.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221331.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221339.gif[/img]
esse e o código da carta
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JOptionPane;
class Carta extends JLabel
{
protected int id;
protected boolean status = false;
protected static final ImageIcon IMGVERSO = new ImageIcon("cartas/verso.gif");
protected static final ImageIcon IMGVERSOEFEITO = new ImageIcon("cartas/versoefeito.gif");
Boolean boo=false;
protected ImageIcon imagem;
JogoDaMemoria jogo;
Carta(int id)
{
this.id = id;
imagem = new ImageIcon("cartas/c"+id+".gif");
setPreferredSize(new Dimension(164,248));
setBackground(Color.WHITE);
setOpaque(true); // faz ser trasparente
setIcon(IMGVERSO);
addMouseListener(new MouseAdapter() // oque eu quero executar
{
public void mouseEntered(MouseEvent evento) //passar o mouse
{
if(!status)
setIcon(IMGVERSOEFEITO);
}
public void mouseExited(MouseEvent evento) // tirar o mouse
{
if(!status)
setIcon(IMGVERSO);
}
public void mouseReleased(MouseEvent evento) // clicar
{
viraCarta(true);
/* if(i==1)
{
viraCarta(true);
i=2;
}
else
if(i==2)
{
viraCarta(false);
setIcon(IMGVERSO);
i=1;
}*/
}
});
}
public void viraCarta(boolean sts)
{
status = sts;
setIcon(sts ? imagem : IMGVERSO);
}
public int getId()
{
return id;
}
}
Esse e do jogo da memoria
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TimerTask;
class JogoDaMemoria extends JFrame
{
Carta c1,c2,c3,c4,c5,c6,c7,c8,c9,c10;
ArrayList baralho;
Carta ref;
static int pontos=0;
static int jogadas=0;
static int fimdejogo=0;
static JLabel texto;
int x[] = new int[20];
Menu meno;
int delay = 1000; // delay de 5 seg.
int interval = 1000; // intervalo de 1 seg.
java.util.Timer timer = new java.util.Timer();
JogoDaMemoria()
{
super("Jogo da Memoria");
setSize(1200,1200);
setLocation(170,0);
ref=null;
baralho = new ArrayList<Carta>();
getContentPane().setLayout(new FlowLayout());
texto = new JLabel();
getContentPane().add(texto).setBounds(10,50,90,30);
texto.setText("Pontuação: "+pontos);
for(int i=1; i<=10; i++)
{
baralho.add(new Carta(i));
baralho.add(new Carta(i));
Collections.shuffle(baralho);
}
for(int i=0; i<20; i++)
{
Carta c = (Carta) baralho.get(i);
c.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
Carta c = (Carta)e.getSource();
if(ref == null&&!c.boo)
{
if(x[c.id]==c.id)
{
System.out.println("Carta aberta");
}
else
{
ref = c;
}
}
else
{
if(x[c.id]==c.id)
{
System.out.println("Carta aberta");
}
else
if(ref.id==c.id)
{
if(ref==c)
{
System.out.println("Clicou na mesma carta");
ref=c;
}
else
{
System.out.println("Acertou");
pontos=pontos+10;
jogadas=jogadas+2;
fimdejogo=fimdejogo+1;
if(fimdejogo==10)
{
JOptionPane.showMessageDialog(null,"Vocêª ganhou","erro",JOptionPane.INFORMATION_MESSAGE);
Menu.text.setText("Pontuação: "+JogoDaMemoria.pontos);
Menu.jogad.setText("Jogadas executadas: "+JogoDaMemoria.jogadas);
setVisible(false);
}
texto.setText("Pontuação: "+JogoDaMemoria.pontos);
x[ref.id]=c.id;
ref=null;
}
}
else
{
if(x[ref.id]==ref.id||x[c.id]==c.id)
{
System.out.println("Ja foi aberta");
ref=c;
}
else
{
texto.setText("Pontuação: "+JogoDaMemoria.pontos);
if(pontos<=0)
{
pontos=0;
}
else
{
pontos=pontos-2;
}
texto.setText("Pontuação: "+JogoDaMemoria.pontos);
JOptionPane.showMessageDialog(null,"Cartas diferentes","erro",JOptionPane.ERROR_MESSAGE);
jogadas=jogadas+2;
ref.viraCarta(false);
c.viraCarta(false);
ref=null;
}
}
}
}
});
getContentPane().add(c);
}
getContentPane().setBackground(Color.WHITE);
setVisible(true);
}
public void Time(Boolean sts)
{
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
for(int j=0;j<20;j++)
{
Carta C = (Carta)baralho.get(j);
C.viraCarta(sts);
}
}
}, 1000, 1000);
}
}e esse é o menu
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.ArrayList; //Implementação redimensionável-matriz da interface List.
import java.util.TimerTask; //Implementa todas as operações de lista opcional, e permite que todos os elementos, incluindo nulo.
//Além de implementar a interface List, essa classe fornece métodos para manipular o tamanho da matriz que é usado internamente para armazenar a lista.
//(Esta classe é aproximadamente equivalente a Vector, exceto que ele não está sincronizado.)
//A TimerTask classe representa uma tarefa para ser executada em um determinado momento
public class Menu extends JFrame
{
static JLabel text,jogad;
JButton b1,b2;
JogoDaMemoria jogo;
int i=1;
static int aux;
Boolean sim;
Menu()
{
super("Menu");
setSize(169,700);
b1 = new JButton("Novo Jogo");
b2 = new JButton("Sair");
jogad = new JLabel("Jogadas executadas: ");
text = new JLabel("Pontuação: ");
getContentPane().add(b1).setBounds(10,10,110,30);
getContentPane().add(b2).setBounds(10,120,90,30);
getContentPane().add(text).setBounds(10,50,90,30);
getContentPane().add(jogad).setBounds(10,70,200,30);
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
aux=1;
if(i==1)
{
jogo = new JogoDaMemoria();
i=2;
}
else
{
int resposta = JOptionPane.showConfirmDialog(null, "Deseja recomeçar novo jogo?","erro", JOptionPane.YES_NO_OPTION);
if (resposta == JOptionPane.YES_OPTION)
{
jogo.setVisible(false);
if(i==2)
{
text.setText("Pontuação: "+JogoDaMemoria.pontos);
jogad.setText("Jogadas executadas: "+JogoDaMemoria.jogadas);
JogoDaMemoria.pontos = 0;
JogoDaMemoria.jogadas = 0;
jogo = new JogoDaMemoria();
System.out.println(JogoDaMemoria.pontos);
}
}
else
if (resposta == JOptionPane.NO_OPTION)
{
text.setText("Pontuação: "+JogoDaMemoria.pontos);
jogad.setText("Jogadas executadas: "+JogoDaMemoria.jogadas);
JogoDaMemoria.pontos = 0;
JogoDaMemoria.jogadas = 0;
jogo.setVisible(false);
i=1;
}
}
}
});
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jogo.setVisible(false);
text.setText("Pontuação: "+JogoDaMemoria.pontos);
jogad.setText("Jogadas executadas: "+JogoDaMemoria.jogadas);
JogoDaMemoria.pontos = 0;
JogoDaMemoria.jogadas = 0;
i=1;
}
});
setLayout(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new Menu();
}
}Aki estar as cartas
[img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221155.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221216.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221223.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221232.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221241.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221249.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221257.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221305.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221313.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221323.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221331.gif[/img][img]http://arquivo.devmedia.com.br/forum/imagem/433678-20150528-221339.gif[/img]
Gustavo
Curtidas 0