Documentos de Académico
Documentos de Profesional
Documentos de Cultura
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
int clic=0;//Variable que determinar� cuantos clic se han dado antes de validar
las parejas
int vista1,vista2;//variables que indicar�n cuales son las imagenes que se han
mostrado
int puntaje=0;//Variable que permitir� llevar un conteo de los puntos
public VentanaPrincipal() {
initComponents();
inicializarArreglos();
setSize(574, 517);
setResizable(false);
setLocationRelativeTo(null);
botonInicia=new JButton();
botonInicia.setFont(new java.awt.Font("Tahoma", 0, 36)); // NOI18N
botonInicia.setText("Reinicia");
botonInicia.setBounds(10, 310, 230, 80);
botonInicia.addMouseListener(this);
add(panelCentral, java.awt.BorderLayout.CENTER);
add(panelInferior, java.awt.BorderLayout.PAGE_END);
add(panelSuperior, java.awt.BorderLayout.PAGE_START);
pack();
}
//===========================================================================
===========================//
// Logica
del juego
//===========================================================================
===========================//
/**
* Permite inicializar todos los arreglos utilizados
*/
private void inicializarArreglos() {
inicializaArregloImagenes();
/**
*Metodo que permite inicializar el arreglo de JLabels con los objetos
labels de las imagenes
*y asignarle a cada uno la imagen inicial de incognita
*/
private void inicializaArregloImagenes() {
ArrLabImag[0]=etiImagen1; ArrLabImag[1]=etiImagen2;
ArrLabImag[2]=etiImagen3;
ArrLabImag[3]=etiImagen4; ArrLabImag[4]=etiImagen5;
ArrLabImag[5]=etiImagen6;
ArrLabImag[6]=etiImagen7; ArrLabImag[7]=etiImagen8;
ArrLabImag[8]=etiImagen9;
ArrLabImag[9]=etiImagen10; ArrLabImag[10]=etiImagen11;
ArrLabImag[11]=etiImagen12;
//===========================================================================
===========================//
//Eventos del Mouse
//===========================================================================
===========================//
@Override
public void mouseClicked(MouseEvent e) {
/*Logica para el evento del bot�n iniciar*/
if (e.getSource()==botonInicia) {
inicializarArreglos();
clic=0;
puntaje=0;
lblPuntos.setText("0");
}
/*Ciclo que permite recorrer todos los JLabel del arreglo y determinar
cuando uno fue presionado*/
for (int i = 0; i < 12; i++) {
/*Con esta validacion nos damos cuenta de cual label se presion�
y validamos que
*si es un label que ya esta descubierto porque su pareja fue
encontrada, entonces no
*lo tenga en cuenta para validar mas parejas, pues esta ya fue
encontrada */
if (e.getSource()==ArrLabImag[i] &&
verificaParejasEncontradas(i)) {
arregloCantClic[i]++;//si se presiona 2 veces seguidas un
label, se incrementa la posicion del arreglo
/*se valida que el mismo label no se presionara mas de dos
veces seguidas, si esto es as�
* el sistema espera hasta que se presione otro label para
poder validar parejas*/
if (arregloCantClic[i]<2) {
/*si lleva menos de 2 clic en un mismo label entonces
se muestra la imagen*/
clic++;
ArrLabImag[i].setIcon(new
ImageIcon(getClass().getResource("/imagenes/"+ArrNumIma[i]+".jpg")));
if (clic==1) {
vista1=i;//si se lleva 1 clic se almacena en
una variable la posicion de la imagen para luego ser comparada con la posicion de
la segunda
}else{
vista2=i;//si se llevan 2 clic se almacena en
una variable la posicion de la segunda imagen para luego compararla con la primera
}
}
}
}
}
/**
* El arregloControlParejas almacena 0 o 1, 0 indica que no hay parejas
encontradas a�n para esa posicion, 1 indica que en esa posicion
* ya se encuentr� pareja, se habla de posiciones ya que en estas es donde se
encuentran las imagenes.
* @param i
* @return
*/
private boolean verificaParejasEncontradas(int i) {
if (arregloControlParejas[i]!=1) {
return true;
}else{
return false;
}
}
@Override
public void mouseExited(MouseEvent e) {
/*Cuando se ejecuta este evento se permite realizar la validacion de
parejas, solo cuando ya se han descubierto 2*/
for (int i = 0; i < 12; i++) {
if (e.getSource()==ArrLabImag[i]) {
if (clic==2) {
validaParejas(vista1,vista2,i);
clic=0;
}
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) { }
@Override
public void mousePressed(MouseEvent arg0) { }
@Override
public void mouseReleased(MouseEvent arg0) { }
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ventanaprincipal;
/**
*
* @author rober
*/
public class Aplicacion {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
VentanaPrincipal miVentana=new VentanaPrincipal();
miVentana.setVisible(true);
}