
import java.awt.*;
import javax.swing.*; 
import java.awt.event.*;
import javax.swing.event.*; 
import java.util.Random;


public class CampoMinado3 extends JFrame implements ActionListener
{
		JButton bt_Bombas [] = new JButton [100]; 
			
		JButton bt_Reiniciar, bt_Sair, bt_Sobre; 	
		
		JPanel Painel_Central, Painel_Sul, Painel_Norte, Painel_Norte1, Painel_Norte2;
		
		int Numeros [] = new int [100];
		
		JLabel lbl_Pontos, lbl_Jogadas;
		
		int Pontos_Acumulados = 0, Jogadas_Acumuladas = 0; 

    	public CampoMinado3() 
    	{
    			Numeros = Metodo_Monta_Tabela_Numeros();
    			
    			getContentPane().setLayout(new BorderLayout()); 
    			getContentPane().add("North", Painel_Norte = new JPanel(new GridLayout(1, 2)));
    			Painel_Norte.add(Painel_Norte1 = new JPanel()); 
    			Painel_Norte1.add(new JLabel("JOGADAS:")); 	
    			Painel_Norte1.add(lbl_Jogadas = new JLabel(""));		
    			//Painel_Norte1.add(lbl_Pontos = new JLabel(""+Pontos_Acumulados));				
       			
       			Painel_Norte.add(Painel_Norte2 = new JPanel()); 
    			Painel_Norte2.add(new JLabel("PONTUAÇÃO:"));	 
    			Painel_Norte2.add(lbl_Pontos = new JLabel(""+Jogadas_Acumuladas));	
    			getContentPane().add("Center", Painel_Central = new JPanel(new GridLayout(10, 10)));
    			
    			Metodo_Monta_Tela();
 				
 				getContentPane().add("South", Painel_Sul = new JPanel(new FlowLayout(FlowLayout.CENTER)));   			
    			Painel_Sul.add(bt_Sobre 	= new JButton("SOBRE O JOGO"));  
    			Painel_Sul.add(bt_Reiniciar = new JButton("REINICIAR"));  
    			Painel_Sul.add(bt_Sair 		= new JButton("SAIR DO JOGO"));  
    			
    			setSize(600, 600); 
    			//pack();
    			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    			
    			setResizable(false); 
    			
    			setVisible(true);
    		
    			this.setLocationRelativeTo(null);
    			
    			setTitle("OXNAR - CAMPO MINADO (UNINTER - TECNOLOGIA EM DESENVOLVIMENTO DE APPS)");
    			
    			bt_Sobre.addActionListener(this);
    			bt_Reiniciar.addActionListener(this); 
    			bt_Sair.addActionListener(this); 	
    	}
    	public void Metodo_Pontos_Bonificacao(int bt_Clicado)
    	{
    		
    	}
    	public void actionPerformed(ActionEvent e)
    	{
    			int i = 0; 
    			while(i<100)
    			{		
    					if(e.getSource()==bt_Bombas[i])
    					{
    							bt_Bombas[i].setEnabled(false);
    							System.out.println(""+Numeros[i]);
    							lbl_Pontos.setText(""+Pontos_Acumulados);
    							
    							if(Numeros[i]==0)
    							{
    									bt_Bombas[i].setBackground(Color.red);
    									bt_Bombas[i].setText("");
    									System.out.println("VOCE PERDEU O JOGO");
    									JOptionPane.showMessageDialog (null, "VOCÊ PERDEU O JOGO \n Sua pontuação foi "+ Pontos_Acumulados + "!!!"); 
    									int z = 0; 
    									lbl_Pontos.setText(""+Pontos_Acumulados);	
    									while(z < 100)
    									{
    											bt_Bombas[z].setEnabled(false); 
    											bt_Bombas[z].setText(""+Numeros [z]);
    											if(Numeros[z]==0)
    											{
    													bt_Bombas[z].setBackground(Color.red);
    											}	
    											z++; 	
    									}
    									Jogadas_Acumuladas++;
    									 
    							}
    							if(Numeros[i]==1)
    							{
    									bt_Bombas[i].setText("1");
    									Pontos_Acumulados = Pontos_Acumulados + 1;
    									Jogadas_Acumuladas++;
    									lbl_Pontos.setText(""+Pontos_Acumulados); 
    									lbl_Jogadas.setText(""+Jogadas_Acumuladas); 
     									 
    							}
    							if(Numeros[i]==2)
    							{
    									bt_Bombas[i].setText("2");
    									Pontos_Acumulados = Pontos_Acumulados + 2;
    									lbl_Pontos.setText(""+Pontos_Acumulados);
    									Jogadas_Acumuladas++;
    									lbl_Jogadas.setText(""+Jogadas_Acumuladas);    									   									
    							}
    							if(Numeros[i]==3)
    							{
    									bt_Bombas[i].setText("3");
    									Pontos_Acumulados = Pontos_Acumulados + 3;  
    									Jogadas_Acumuladas++;
    									lbl_Jogadas.setText(""+Jogadas_Acumuladas);										
    							}
     							if(Numeros[i]==4)
    							{
    									bt_Bombas[i].setText("4");
    									Pontos_Acumulados = Pontos_Acumulados + 4;
    									Jogadas_Acumuladas++;
    									lbl_Jogadas.setText(""+Jogadas_Acumuladas);
    									  
    							}
    							if(Numeros[i]==5)
    							{
    									bt_Bombas[i].setText("5");
    									Pontos_Acumulados = Pontos_Acumulados + 5;
    									Jogadas_Acumuladas++;
    									lbl_Jogadas.setText(""+Jogadas_Acumuladas);		  
    							}   							
    							i = 100; 
    					}
    					i++;
    					
    			}	
    			if(e.getSource()==bt_Reiniciar)
    			{
    					dispose(); 
    					new CampoMinado3(); 	
    			}
    			if(e.getSource()==bt_Sobre)
    			{
    					String mensagem = ("UNINTER - TECNOLOGIA EM DESENVOLVIMENTO DE APPS \n Atividade Extensionista\n APLICATIVO DESENVOLVIDO PELO PROF. ANDRÉ APARECIDO SILVA \n PARA AS AULAS DE PROGRAMAÇÃO JAVA \n Código fonte em http:\\www.oxnar.com.br ");
    					JOptionPane.showMessageDialog (null, mensagem);  			
    			}
    			if(e.getSource()==bt_Sair)
    			{System.exit(0);} 			
    	}
    	public int []  Metodo_Monta_Tabela_Numeros()
    	{
    			int num [] = new int [100]; 
    			int i = 0;  
    			while(i< 100)
    			{
    				 if(i < 8)
    				 	num [i] = 0; 
 	  				 		
    				 if((i>=9)&&(i<30))
    				 	num [i] = 1;
    				 if((i>41)&&(i<75))
    				 	num [i] = 2; 
    				 if((i>=75)&&(i<95))
    				 	num [i] = 4; 
    				 if((i>=95)&&(i<100))
    				 	num [i] = 5; 
    				 		
    				 i++;	
    			}
    			i = 0;
    			int x, y, aux;  
    			while(i < 99)
    			{
    					x = Metodo_Retorna_Numero_Aleatorio(); 
    					y = Metodo_Retorna_Numero_Aleatorio(); 
    					aux = num [x];
    					num[x] = num [y];
    					num[y] = aux; 
    					i++;  	
    			}	
    			return (num); 
    	}
    	public void Metodo_Monta_Tela()
    	{
    			Painel_Central.setLayout(new GridLayout(10,10));
    			int i = 0; 
    			while(i <100)
    			{
    					Painel_Central.add(bt_Bombas[i] = new JButton("AA") );
    					bt_Bombas[i].setEnabled(true); 
    					bt_Bombas[i].addActionListener(this);
    					i++; 
    			} 
    	}
    	public int Metodo_Retorna_Numero_Aleatorio()
        {
              int i = 1 + (int) (Math.random() * 99);
              return i;
        }
     
    	public static void main (String args [])
    	{
    			new CampoMinado3();
    	}
   
    
}