Advertisement
Vesker

MemGame

Jun 26th, 2015
564
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 23.96 KB | None | 0 0
  1. import javax.swing.JFrame;
  2.  
  3.  
  4. public class Main {
  5.  
  6.         public static void main( String args[] ){
  7.                  
  8.         Menu application = new Menu();
  9.  
  10.         application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  11.         application.setLocationRelativeTo( null );
  12.     }
  13. }
  14.  
  15.  
  16. public class Jogador {
  17.        
  18.         private String nome; //Nome do jogador
  19.         private int pontos; //Quantos pontos o jogador tem
  20.        
  21.         public Jogador(String nomeJogador){ //Construtor
  22.                 super();
  23.                 nome = nomeJogador;
  24.                 pontos = 0;
  25.         }
  26.        
  27.         public String getNome(){ //Metodo para retornar o nome do jogador
  28.                 return nome;
  29.         }
  30.        
  31.         public int getPontos(){ //Metodo para retornar a quantidade de pontos do Jogador
  32.                 return pontos;
  33.         }
  34.        
  35.         public void incrementarPontos(){ //Metodo para incrementar pontos a cada acerto do jogador
  36.                 pontos = pontos + 10;
  37.         }
  38.        
  39.         public void decrementarPontos(){ //Metodo para decrementar pontos a cade erro do Jogador
  40.                 pontos = pontos - 2;
  41.         }
  42.  
  43. }
  44.  
  45.  
  46. import javax.swing.Icon;
  47. import javax.swing.JButton;
  48.  
  49.  
  50. public class Botao extends JButton {
  51.        
  52.         private Icon imagemPadrao; //Icone Default para a imagem
  53.         private Icon imagemBotao; //Icone Default para o botao
  54.        
  55.         public Botao(Icon imagemPadrao, Icon imagemBotao){ //Construtor
  56.                 super();
  57.                 this.imagemPadrao = imagemPadrao;
  58.                 this.imagemBotao = imagemBotao;
  59.                 setImagemPadrao(); //Faz com que todos os botoes settem a imagem default
  60.         }
  61.  
  62.         public void setImagemPadrao(){ //Metodo da classe Icon, setta im icone a imagem
  63.                 this.setIcon(imagemPadrao);
  64.         }
  65.        
  66.         public void setImagemBotao(){ //Metodo da classe Icon, setta im icone ao botao
  67.                 this.setIcon(imagemBotao);
  68.         }
  69.        
  70.         public Icon getImagemBotao(){ //Metodo Get padrao, retorna a imagem do botao
  71.                 return this.imagemBotao;
  72.         }
  73.        
  74.         public Icon getImagemPadrao(){ //Metodo Get padrao, retorna a imagem padrao
  75.                 return this.imagemPadrao;
  76.         }
  77.        
  78.        
  79.        
  80. }
  81.  
  82.  
  83. import java.awt.BorderLayout;
  84. import java.awt.Color;
  85. import java.awt.Container;
  86. import java.awt.GridLayout;
  87. import java.awt.event.ActionEvent;
  88. import java.awt.event.ActionListener;
  89. import java.awt.event.ItemListener;
  90. import java.awt.*;
  91. import java.awt.event.*;
  92.  
  93. import javax.swing.*;
  94.  
  95. import java.io.BufferedReader;
  96. import java.io.FileReader;
  97. import java.io.IOException;
  98.  
  99. public class Menu extends JFrame implements ActionListener, ItemListener {
  100.  
  101.         private Container container; //Atributo do tipo Container, para armazenar todas as informacoes da classe
  102.         private JButton botaoSair, botaoIniciarJogo, botaoLog; //Atributo do tipo JButton, serve para, como o nome diz, Sair do jogo ou Iniciar o jogo
  103.         private JPanel painelBotoes, painelDados, painelCabecalho; //Atributo do tipo JPanel, serve para mostrar a Tela do jogo com as informacoes
  104.         private JPanel painelCentro, painelRodape, painelImagem; //Idem para o de cima, com a diferenca que este eh estetica
  105.         private Icon imagemPainel, imagemJogar, imagemTitulo, imagemSair; //Serve para settar imagens ao JPanel
  106.         private JLabel labelImagemPainel, labelNomeJogador, labelTemaJogo; //Serve para que apareca o nome do jogador no jogo
  107.         private JLabel labelCreditos, labelTitulo; //Estetica, titulo do jogo e creditos de quem o desenvolveu
  108.         private GridLayout gridBotoes, gridCentro, gridCabecalho, gridRodape; //Grades para organizar os componentes
  109.         private JComboBox temasJogo; //O JComboBox serve para o usuario selecionar uma opcao de um "scroll-down" menu, neste caso, para escolher o tema do jogo
  110.         private int indiceTema = 1; //Para selecionar o tema do jogo 1 = Pokemon
  111.         private JTextField fieldNomeJogador; //Serve para o usuario escrever seu nome no jogo
  112.         private boolean jogoFacil = false;
  113.         private JMenu menuDificuldade; //Botao que quando clicado junto com o JMenu mostra as dificuldades que podem ser selecionadas, e somente ela podera ser selecionada
  114.         //enquanto as outras permanecem desligadas, tipo um "Switch Case", um "tick"
  115.         private JMenuBar barraMenu; ////Mostra com um "pop-up" os componentes do menuDificuldade, para selecionarmos
  116.         private JRadioButtonMenuItem radioFacil, radioDificil; //As Dificuldades Facil e Dificil podem ser selecionadas atravez de checks
  117.         private JLabel nivelDificuldade; //Mostrar uma string, neste caso Dificil ou Facil
  118.         private Jogador objJogador; //Instanciar a Classe Jogador
  119.         private TelaJogo objTelaJogo; //Instancia a Classe TelaJogo
  120.         private String nomeObjJogador; //String para armazenar o nome do jogador
  121.         private String temas[] = {"Pokemon", "Mortal Kombat"}; //Array de String para armazenar o nome dos Temas do jogo
  122.         private int indiceTemas[] = {1, 2}; //Array de int para armazenar qual indice corresponde a qual Tema, ex.: 1 - Pokemon; 2 - Mortal Kombat
  123.         BufferedReader br = null;
  124.  
  125.         public Menu(){
  126.                 super();
  127.  
  128.                 /*public GridLayout(int rows,
  129.           int cols,
  130.           int hgap,
  131.           int vgap)
  132.         rows - the rows, with the value zero meaning any number of rows
  133.                 cols - the columns, with the value zero meaning any number of columns
  134.                 hgap - the horizontal gap
  135.                 vgap - the vertical gap
  136.                  */
  137.  
  138.                 //Grades do Menu para settar o Layout
  139.                 gridBotoes = new GridLayout(1, 2, 5, 5);
  140.                 gridCentro = new GridLayout(6, 1, 10, 10);
  141.                 gridCabecalho = new GridLayout( 1, 1, 10, 10 );
  142.                 gridRodape = new GridLayout( 1, 1, 10, 10 );
  143.  
  144.                 //Imagem do Painel a Esquerda
  145.                 imagemPainel = new ImageIcon(getClass().getResource("/imagens/jogo/painel.gif"));
  146.                 labelImagemPainel = new JLabel(imagemPainel);
  147.                 painelImagem = new JPanel();
  148.                 painelImagem.add(labelImagemPainel);
  149.  
  150.                 //Imagem dos Botoes;
  151.  
  152.                 //Imagem do Botao Jogar
  153.                 imagemJogar = new ImageIcon(getClass().getResource("/imagens/jogo/jogar.gif"));
  154.                 //Imagem do Botao Sair
  155.                 imagemSair = new ImageIcon(getClass().getResource("/imagens/jogo/sair.gif"));
  156.  
  157.                 //Configuracao dos Botoes;
  158.  
  159.                 //Botao Jogar
  160.                 botaoIniciarJogo = new JButton("Start Game", imagemJogar);
  161.                 botaoIniciarJogo.addActionListener(this);
  162.                 botaoIniciarJogo.setSize(250, 15);
  163.                 botaoIniciarJogo.setHorizontalAlignment( SwingConstants.LEFT );
  164.  
  165.                 //Botao Sair
  166.                 botaoSair = new JButton("Exit Game" , imagemSair);
  167.                 botaoSair.addActionListener(this);
  168.                 botaoSair.setSize(250, 15);
  169.                 botaoSair.setHorizontalAlignment( SwingConstants.RIGHT );
  170.                
  171.                 //Botao Log
  172.                 botaoLog = new JButton("Log do jogo");
  173.                 botaoLog.addActionListener(this);
  174.                 botaoLog.setSize(50, 15);
  175.                 botaoLog.setHorizontalAlignment(SwingConstants.CENTER);
  176.                
  177.                 //Painel de Botoes Inferior
  178.                 painelBotoes = new JPanel();
  179.                 painelBotoes.setLayout(gridBotoes);
  180.                 painelBotoes.add(botaoSair);
  181.                 painelBotoes.add(botaoIniciarJogo);
  182.  
  183.                 //Labels(instrucoes, informacoes, etc);
  184.  
  185.                 //Label para mostrar o nivel de Dificuldade, padrao eh Facil
  186.                 nivelDificuldade = new JLabel("Nivel de Dificuldade: Dificil");
  187.                 nivelDificuldade.setForeground(Color.red);
  188.  
  189.  
  190.                 //Titulo/Cabecalho
  191.                 imagemTitulo = new ImageIcon(getClass().getResource("/imagens/jogo/titulo2.gif"));
  192.                 labelTitulo = new JLabel(imagemTitulo);
  193.                 labelTitulo.setHorizontalAlignment(SwingConstants.CENTER);
  194.  
  195.                 //Painel para conter o Titulo
  196.                 painelCabecalho = new JPanel();
  197.                 painelCabecalho.setLayout(gridCabecalho);
  198.                 painelCabecalho.add(labelTitulo);
  199.                 painelCabecalho.add(botaoLog);
  200.  
  201.                 //Label para escolha do Nome
  202.                 labelNomeJogador = new JLabel("Insira aqui seu nome desejado");
  203.  
  204.                 //Campo de texto para informar o nome
  205.                 fieldNomeJogador = new JTextField(40);
  206.  
  207.                 //Label para Escolher o tema do Jogo
  208.                 labelTemaJogo = new JLabel("Escolha qual o tema do jogo");
  209.  
  210.                 //ComboBox dos temas do jogo, drop-down menu para escolha dos temas
  211.                 temasJogo = new JComboBox(temas);
  212.                 temasJogo.addItemListener(this);
  213.  
  214.                 //Painel Central com todos os dados e basicamente os botoes
  215.                 painelCentro = new JPanel();
  216.                 painelCentro.setLayout(gridCentro);
  217.                 painelCentro.add(labelTemaJogo);
  218.                 painelCentro.add(temasJogo);
  219.                 painelCentro.add(labelNomeJogador);
  220.                 painelCentro.add( fieldNomeJogador );
  221.                 painelCentro.add(nivelDificuldade);
  222.  
  223.  
  224.                 //Configuracao dos Menus;
  225.  
  226.                 //Menu de Dificuldade
  227.                 menuDificuldade = new JMenu("Nível de Dificuldade");
  228.                 barraMenu = new JMenuBar();
  229.                 setJMenuBar(barraMenu);
  230.                 barraMenu.add(menuDificuldade);
  231.  
  232.                 //Opcao JRadioButton Dificil
  233.                 radioDificil = new JRadioButtonMenuItem("Jogo 6x6");
  234.                 radioDificil.setSelected(true);
  235.                 radioDificil.addActionListener(new ActionListener(){
  236.                         public void actionPerformed(ActionEvent ae){
  237.                                 jogoFacil = false; //modifica o atributo jogoFacil para falso
  238.                                 nivelDificuldade.setText("Nível de dificuldade: DIFÍCIL"); //Modifica o JLabel para mostrar que o jogo foi settado pra Dificil
  239.                                 nivelDificuldade.setForeground(Color.red); //Modifica a Cor do texto para vermelho; Vermelho eh a cor universal de dificuldade elevada pois representa fogo, sangue, etc. inutil
  240.                         }
  241.                 });
  242.  
  243.                 //Opcao JRadioButton Facil
  244.                 radioFacil  = new JRadioButtonMenuItem("Jogo 4x4");
  245.                 radioFacil.addActionListener(new ActionListener(){
  246.                         public void actionPerformed(ActionEvent ae){
  247.                                 jogoFacil = true;
  248.                                 nivelDificuldade.setText("Nivel de dificuldade: FACIL");
  249.                                 nivelDificuldade.setForeground(Color.blue);
  250.                         }
  251.                 });
  252.  
  253.                 //Adiciona as opcoes de dificuldade ao menu
  254.                 menuDificuldade.add(radioDificil);
  255.                 menuDificuldade.add(radioFacil);
  256.  
  257.                 //Adiciona um Label/texto de creditos do Programa
  258.                 labelCreditos = new JLabel("Feito por Salvatore Amore & Ricardo Sell - 2015");
  259.  
  260.                 //Configura o rodape do jogo
  261.                 painelRodape = new JPanel();
  262.                 painelRodape.setLayout(gridRodape);
  263.                 painelRodape.add(labelCreditos);
  264.  
  265.                 //Configuracao de Layout do Painel Principal de Dados
  266.                 painelDados = new JPanel();
  267.                 painelDados.setLayout( new BorderLayout( 10, 10 ));
  268.                 painelDados.add( painelCabecalho, BorderLayout.NORTH);
  269.                 painelDados.add( painelCentro, BorderLayout.CENTER );
  270.                 painelDados.add( painelBotoes, BorderLayout.SOUTH );      
  271.  
  272.                 //Container
  273.                 container = getContentPane();
  274.                 container.setLayout( new BorderLayout( 5, 5 ) );
  275.                 container.setBackground( Color.lightGray );
  276.                 container.add( painelRodape, BorderLayout.SOUTH );
  277.                 container.add( painelImagem, BorderLayout.WEST );
  278.                 container.add( painelDados );  
  279.  
  280.                 //Configuracao da Tela de Menu
  281.                 setSize( 550, 380 );
  282.                 setVisible( true );
  283.                 setResizable( false );
  284.         }
  285.  
  286.         private void saidaPrograma(){
  287.                 System.exit( 0 );
  288.         }
  289.  
  290.         public void lerLog(){
  291.                 try {
  292.                          
  293.                         String sCurrentLine;
  294.  
  295.                         br = new BufferedReader(new FileReader("Ranking.txt"));
  296.  
  297.                         while ((sCurrentLine = br.readLine()) != null) {
  298.                                 System.out.println(sCurrentLine);
  299.                         }
  300.  
  301.                 } catch (IOException e) {
  302.                         e.printStackTrace();
  303.                 } finally {
  304.                         try {
  305.                                 if (br != null)br.close();
  306.                         } catch (IOException ex) {
  307.                                 ex.printStackTrace();
  308.                         }
  309.                 }
  310.         }
  311.  
  312.         public void actionPerformed(ActionEvent event){
  313.                 //Se o evento for o botao de saida;
  314.                 if ( event.getSource() == botaoSair ){
  315.                         saidaPrograma();
  316.                 }
  317.  
  318.                 //Se o evento for o botao de Log;
  319.                 else if(event.getSource() == botaoLog){
  320.                         lerLog();
  321.                         }
  322.                        
  323.                 //Se entao o evento for o botao de Inicio de Jogo
  324.                 else if(event.getSource() == botaoIniciarJogo){
  325.                         nomeObjJogador = fieldNomeJogador.getText(); //o nomeObjJogador, ou seja, o nome do jogador pega essa informacao na area de Texto em que o usuario escreveu
  326.                         objJogador = new Jogador(nomeObjJogador); //Cria um novo Jogador e passa como parametro o nome pego antes
  327.  
  328.                         if(jogoFacil)
  329.                                 objTelaJogo = new TelaJogo( objJogador, indiceTema, 4 );
  330.                         else
  331.                                 objTelaJogo = new TelaJogo( objJogador, indiceTema, 6 );
  332.                 }
  333.  
  334.         }
  335.         public void itemStateChanged(ItemEvent event){
  336.                 if(event.getSource() == temasJogo){
  337.                         if(event.getStateChange() == ItemEvent.SELECTED){
  338.                                 indiceTema = indiceTemas[ temasJogo.getSelectedIndex() ];
  339.                         }
  340.  
  341.                 }
  342.         }
  343. }
  344.  
  345.  
  346. import java.awt.*;
  347. import java.awt.event.*;
  348. import java.io.BufferedWriter;
  349. import java.io.FileWriter;
  350. import java.io.IOException;
  351.  
  352. import javax.swing.*;
  353.  
  354. import java.awt.*;
  355. import java.awt.event.*;
  356. import java.io.BufferedWriter;
  357. import java.io.FileWriter;
  358. import java.io.IOException;
  359.  
  360. import java.util.Random;
  361.  
  362. import javax.swing.*;
  363.  
  364. public class TelaJogo extends JFrame implements ActionListener{
  365.  
  366.  
  367.         private Object botaoClicadoUm = new Object();
  368.     private Object botaoClicadoDois = new Object();
  369.     private JLabel pontosJogador, labelPontosJogador;
  370.     private JPanel painelImagens, painelPontos;
  371.     private JButton botaoSair;
  372.     private Icon imagemSair, imagens[], imagemPadrao, imagensGuarda[];
  373.     private GridLayout grid;
  374.     private Container container;
  375.     private String tema, resumoJogo = "";
  376.     private Jogador objJogadorJogada;
  377.     private int fator, qtdeAcerto, qtdeTentativas = 0;
  378.     private boolean primeiroClique = true;
  379.     private boolean acertou = true;
  380.     private Botao botaoUm, botaoDois, posicoesFiguras[];
  381.     Random gerador = new Random();
  382.  
  383.     /*
  384.      *  objJogador - Objeto jogador, com os dados do jogador
  385.      *  indiceTema - O tema escolhido
  386.      *  fatorJogo - Inteiro que determina se o jogo é 4X4 ou 6X6
  387.      */        
  388.          public TelaJogo( Jogador objJogador, int indiceTema, int fatorJogo ){        
  389.  
  390.         super( "Jogo da Memória");    
  391.         setLocation( 200, 10 );                
  392.  
  393.         fator = fatorJogo;
  394.        
  395.         objJogadorJogada = objJogador;
  396.         temaJogada( indiceTema );
  397.         preparaArrayImagens();
  398.         container = getContentPane();
  399.  
  400.         labelPontosJogador = new JLabel( "Jogador: " + objJogadorJogada.getNome() + " >> Pontos: " );
  401.  
  402.         pontosJogador = new JLabel( ""+objJogadorJogada.getPontos() );
  403.  
  404.         imagemSair = new ImageIcon(getClass().getResource("/imagens/jogo/sair.gif"));      
  405.  
  406.         // configura o botão sair
  407.         botaoSair = new JButton(" Sair do Jogo ", imagemSair);
  408.         botaoSair.addActionListener( this );        
  409.  
  410.         painelImagens = new JPanel();
  411.         painelPontos = new JPanel();        
  412.  
  413.         // configura o painel superior
  414.         painelPontos.add( labelPontosJogador );
  415.         painelPontos.add( pontosJogador );        
  416.  
  417.         grid = new GridLayout( fator, fator, 5, 5 );
  418.  
  419.         painelImagens.setLayout( grid );                
  420.  
  421.         imagemPadrao = new ImageIcon(getClass().getResource("/imagens/jogo/standard.gif"));
  422.  
  423.         posicoesFiguras = new Botao[( fator * fator )];                
  424.         for ( int ctrl = 0; ctrl < ( fator * fator ); ctrl++ ){
  425.  
  426.             posicoesFiguras[ ctrl ] = new Botao(imagemPadrao, imagens[ctrl]);
  427.             posicoesFiguras[ ctrl ].addActionListener( this );
  428.             painelImagens.add( posicoesFiguras[ ctrl ] );
  429.         }
  430.  
  431.         container.add( painelPontos, BorderLayout.NORTH);
  432.         container.add( botaoSair, BorderLayout.SOUTH );
  433.         container.add( painelImagens );
  434.  
  435.         double d_largura;
  436.         if(fator == 4){
  437.                 d_largura = 85;
  438.         }
  439.         else{
  440.                 d_largura = 80;
  441.         }
  442.  
  443.         d_largura *= fator;
  444.  
  445.         int i_largura = (int) d_largura;
  446.  
  447.         setSize( i_largura, i_largura+70 );
  448.         setVisible( true );
  449.         setResizable( false );
  450.     }
  451.  
  452.     /**
  453.      * Prepara o Array de Imagens
  454.      *
  455.      */
  456.     public void preparaArrayImagens(){
  457.  
  458.         int posicaoNoArray, x, y;
  459.  
  460.         this.imagensGuarda = new Icon[(fator * fator)/2];
  461.  
  462.         for ( x = 0; x < ((fator*fator)/2); x++ ){
  463.  
  464.             this.imagensGuarda[ x ] = new ImageIcon(getClass().getResource(tema + ( x + 1 ) + ".GIF"));
  465.         }
  466.  
  467.         this.imagens = new Icon[ (fator*fator) ];
  468.  
  469.         for ( x = 0; x < 2; x++ ){
  470.  
  471.             for ( y = 0; y < ((fator*fator)/2); y++ ){
  472.  
  473.                 do{
  474.                     posicaoNoArray = gerador.nextInt(fator*fator);
  475.                 }while( this.imagens[ posicaoNoArray ] != null );
  476.  
  477.                 this.imagens[ posicaoNoArray ] = imagensGuarda[ y ];
  478.  
  479.             }
  480.         }
  481.     }
  482.  
  483.     //Descobre o tema escolhido com Switch Case
  484.     private void temaJogada( int codTema ){
  485.  
  486.         switch( codTema ){
  487.  
  488.                 case 1: this.tema = "/imagens/Pokemon/";
  489.             break;
  490.  
  491.             case 2: this.tema = "/imagens/MortalKombat/";
  492.             break;
  493.  
  494.         }
  495.     }
  496.  
  497.     //Mostrar pontuacao e tentativas do jogador
  498.     private void mostrarResumoJogo(){
  499.  
  500.                 resumoJogo = "Jogador: " + objJogadorJogada.getNome() + " " +
  501.                                 "Pontos: " + objJogadorJogada.getPontos() + " " +
  502.                                 "Quantidade de tentativas: " + qtdeTentativas + " \n --" +
  503.                                 " Jogo do tipo: " + fator + "x" + fator ;
  504.  
  505.                 JOptionPane.showMessageDialog( null, ""+resumoJogo, "Resumo do Jogo",
  506.                                 JOptionPane.INFORMATION_MESSAGE );
  507.  
  508.                 BufferedWriter writer = null;
  509.                 try
  510.                 {
  511.  
  512.                         writer = new BufferedWriter( new FileWriter( "Ranking.txt", true));
  513.                         writer.write( resumoJogo);
  514.                         writer.newLine();
  515.                 }
  516.                 catch ( IOException e)
  517.                 {
  518.                 }
  519.                 finally
  520.                 {
  521.                         try
  522.                         {
  523.                                 if ( writer != null)
  524.                                         writer.close( );
  525.                         }
  526.                         catch ( IOException e)
  527.                         {
  528.                         }
  529.                 }
  530.  
  531.  
  532.                 setVisible( false );
  533.         }
  534.  
  535.     public void actionPerformed( ActionEvent event ){        
  536.  
  537.         // Se o evento for do botão Sair
  538.         if ( event.getSource() == botaoSair ){
  539.  
  540.             mostrarResumoJogo();
  541.         }
  542.  
  543.         // Caso contrário eh evento de botões de imagem
  544.         else{
  545.  
  546.             // testa se eh o primeiro clique
  547.             if( primeiroClique ){
  548.  
  549.                  
  550.  
  551.                 // testa se o jogador errou na jogada anterior
  552.                 if ( !acertou ){
  553.  
  554.                     botaoUm = (Botao) botaoClicadoUm;
  555.                     botaoDois = (Botao) botaoClicadoDois;
  556.  
  557.                     botaoUm.setImagemPadrao();
  558.                     botaoDois.setImagemPadrao();
  559.                 }
  560.  
  561.                 botaoClicadoUm = event.getSource();
  562.  
  563.                 botaoUm = (Botao) botaoClicadoUm;
  564.                 botaoUm.setImagemBotao();                
  565.  
  566.                 // indica que este foi o primeiro clique
  567.                 primeiroClique = !primeiroClique;
  568.             }
  569.  
  570.             // se nao for o primeiro clique
  571.             else{                
  572.  
  573.                 botaoClicadoDois = event.getSource();
  574.                 botaoDois = (Botao) botaoClicadoDois;                                
  575.                 qtdeTentativas++;
  576.                
  577.                 // verifica se o jogador clicou no mesmo botão
  578.                 if ( botaoClicadoDois == botaoClicadoUm ){
  579.  
  580.                     acertou = false;
  581.  
  582.                     JOptionPane.showMessageDialog( null, "Ação não permitida!",
  583.                     "Ação Não Permitida", JOptionPane.WARNING_MESSAGE );
  584.                 }
  585.  
  586.                 // se não for o mesmo botao
  587.                 else{            
  588.  
  589.                     // coloca a imagem no botao
  590.                     botaoDois.setImagemBotao();
  591.  
  592.                     // compara com o primeiro botão clicado
  593.                     if ( botaoUm.getImagemBotao().equals( botaoDois.getImagemBotao())){
  594.  
  595.                         acertou = true;
  596.                         qtdeAcerto++;                            
  597.  
  598.                         // Desabilita os botões
  599.                         botaoUm.setEnabled( false );
  600.                         botaoDois.setEnabled( false );                            
  601.  
  602.                         // incrementar pontos
  603.                         objJogadorJogada.incrementarPontos();
  604.  
  605.                         pontosJogador.setText( ""+objJogadorJogada.getPontos() );                            
  606.  
  607.                         // se foi o último par encontrado, apresenta resumo do jogo e fecha a janela
  608.                         if ( qtdeAcerto == ((fator*fator)/2) ){
  609.  
  610.                             mostrarResumoJogo();
  611.                             setVisible( false );
  612.                         }
  613.                     }
  614.  
  615.                     // se não for o mesmo botão
  616.                     else{
  617.  
  618.                         acertou = false;                            
  619.  
  620.                         //decrementar pontos
  621.                         objJogadorJogada.decrementarPontos();
  622.  
  623.                         pontosJogador.setText( ""+objJogadorJogada.getPontos() );
  624.                     }                    
  625.  
  626.                     // indica que este foi o segundo clique
  627.                     primeiroClique = !primeiroClique;
  628.                 }
  629.             }
  630.         }
  631.     }
  632.  
  633.    
  634. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement