Memorama Java
Memorama Java
en diferente posicion
do {
i = r.nextInt(4);
j = r.nextInt(4);
} while (tablero[i][j] != 0);
tablero[i][j] = k;
}
}
imagenOculta = new ImageIcon(getClass().getResource("oculta2.png"));//cargamos la
imagenes
imagenFondo = new ImageIcon(getClass().getResource("fondo.png"));
imagen1 = new ImageIcon(getClass().getResource("1.jpg"));
imagen2 = new ImageIcon(getClass().getResource("2.jpg"));
imagen3 = new ImageIcon(getClass().getResource("3.jpg"));
imagen4 = new ImageIcon(getClass().getResource("4.jpg"));
imagen5 = new ImageIcon(getClass().getResource("5.jpg"));
imagen6 = new ImageIcon(getClass().getResource("6.jpg"));
imagen7 = new ImageIcon(getClass().getResource("7.jpg"));
imagen8 = new ImageIcon(getClass().getResource("8.jpg"));
setUndecorated(true);
setResizable(false);
setBackground(new Color(130, 158, 16));//Parte del Constructor
setTitle(" MEMORAMA ");
Dimension Pantalla = Toolkit.getDefaultToolkit().getScreenSize();//para centrar en la
pantalla
Dimension frame = this.getSize();
setLocation((Pantalla.width / 2 - (frame.width / 2)), Pantalla.height / 2 (frame.height / 2));
setVisible(true);//Termina el Constructor
}
public void dibCuadro(Graphics g, int px, int py, int v) {
switch (v) {
case 0:
g.drawImage(imagenOculta.getImage(), px, py, 98, 98, null);
break;
case 1:
g.drawImage(imagen1.getImage(), px + 4, py + 4, 90, 90, null);
break;
case 2:
g.drawImage(imagen2.getImage(), px + 4, py + 4, 90, 90, null);
break;
case 3:
g.drawImage(imagen3.getImage(), px + 4, py + 4, 90, 90, null);
break;
case 4:
arriba[i][j] = true;
arriba[o][p] = true;
//contabilizamos el numero de parejas
parejas = parejas + 1;
//si el numero de parejas a llegado a 8 entonces damos por concluido el
juego
if (parejas == 8) {
JOptionPane.showMessageDialog(null, "Fin del Juego..!!", "Memorama en Java",
JOptionPane.PLAIN_MESSAGE);
}
} else {
NE = NE + 1;
JOptionPane.showMessageDialog(null, "No forman pareja..!!",
"Memorama en Java", JOptionPane.PLAIN_MESSAGE);
Arriba = 0;
carta1 = 0;
carta2 = 0;
arriba[i][j] = false;
arriba[o][p] = false;;
}
}
} else {
arriba[i][j] = false;//Cata oculta
}//fin de la comparacion
}//fin del arriba
}//fin del if de mcx mcy
//termina la aplicacion
if (mcx >= 600 && mcx <= 750 && mcy >= 250 && mcy <= 280) {
System.exit(0);
}
//para reinizializar el juego
if (mcx >= 599 && mcx <= 749 && mcy >= 310 && mcy <= 340) {
Memorama newPlayer = new Memorama();
repaint();
}
}
public void mouseMoved(MouseEvent me) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent me) {}
public void mouseExited(MouseEvent me) {}
public void mouseDragged(MouseEvent e) {}
try
{
String URLRegistro ="rmi://"+nombre+"/Memorama";
h =(MemoInt) Naming.lookup(URLRegistro);
arriba = h.arr(arriba2);
}// fin try
catch (Exception exc)
{}
}
public boolean comprueba()
{
for(int q=0;q<8;q++)
{
for(int w=0;w<8;w++)
{
if(arriba[q][w]==false){return false;}
}
}
return true;
}public void arri()
{
try
{
String URLRegistro ="rmi://"+nombre+"/Memorama";
h =(MemoInt) Naming.lookup(URLRegistro);
h.arrib(arriba);
}// fin try
catch (Exception exc)
{}
}
public boolean mt()
{
try
{
String URLRegistro ="rmi://"+nombre+"/Memorama";
h =(MemoInt) Naming.lookup(URLRegistro);
if(h.turno()==4){arriba=h.arr(arriba2);repaint();return true;}
}// fin try
catch (Exception exc)
{}actualiza();return false ;
}
public void dibCuadro(Graphics g, int px, int py, int v) {
switch (v) {
case 0:
case 16:
g.drawImage(imagen16.getImage(), px , py, 50, 50, null);
break;
case 17:
g.drawImage(imagen17.getImage(), px , py, 50, 50, null);
break;
case 18:
g.drawImage(imagen18.getImage(), px , py, 50, 50, null);
break;
case 19:
g.drawImage(imagen19.getImage(), px , py, 50, 50, null);
break;
case 20:
g.drawImage(imagen20.getImage(), px , py, 50, 50, null);
break;
case 21:
g.drawImage(imagen21.getImage(), px , py, 50, 50, null);
break;
case 22:
g.drawImage(imagen22.getImage(), px , py, 50, 50, null);
break;
case 23:
g.drawImage(imagen23.getImage(), px , py, 50, 50, null);
break;
case 24:
g.drawImage(imagen24.getImage(), px , py, 50, 50, null);
break;
case 25:
g.drawImage(imagen25.getImage(), px , py, 50, 50, null);
break;
case 26:
g.drawImage(imagen26.getImage(), px , py, 50, 50, null);
break;
case 27:
g.drawImage(imagen27.getImage(), px , py, 50, 50, null);
break;
case 28:
g.drawImage(imagen28.getImage(), px , py, 50, 50, null);
break;
case 29:
g.drawImage(imagen29.getImage(), px , py, 50, 50, null);
break;
case 30:
g.drawImage(imagen30.getImage(), px , py, 50, 50, null);
break;
case 31:
g.drawImage(imagen31.getImage(), px , py, 50, 50, null);
break;
case 32:
g.drawImage(imagen32.getImage(), px , py, 50, 50, null);
break;
}
}
public void paint(Graphics g) {
g.drawImage(imagenFondo.getImage(), 0, 0, 1024, 768, null);
g.setColor(Color.black);//Color de las letra
g.setFont(new Font("Arial", Font.BOLD, 22));//Tipo de letras
g.drawString("! !", 200, 60);//nosotros
g.setColor(Color.white);//Otro color
g.drawString("! !", 198, 58);// nosotros
g.setColor(Color.black);
int i, j;
for (i = 0; i < 8; i++) {
for (j = 0; j < 8; j++) {
if (arriba[i][j]) {
dibCuadro(g, CX + j * EX, CY + i * EY, tablero[i][j]);
} else {
dibCuadro(g, CX + j * EX, CY + i * EY, 0);
}
}
}
g.setColor(Color.red);
g.fillRect(600, 250, 150, 30);
g.setFont(new Font("Arial", Font.BOLD, 16));
g.setColor(Color.white);
g.drawString("Salir del Juego", 615, 270);
g.setColor(Color.black);
}
public void mouseClicked(MouseEvent me) {
if(mt()){
if (comprueba()==true) {
JOptionPane.showMessageDialog(null, "Fin del Juego..!!\nTu numero de parejas
encontradas : "+parejas, "Memorama en Java", JOptionPane.PLAIN_MESSAGE);
}
NC = NC + 1;//numero de clicks
mcx = me.getX();//toma la posicion del clic en x
mcy = me.getY();//toma la posicion del clic en y
int i, j;
if ((mcx >= CX) && (mcy >= CY) && (mcx <= (CX + 8 * EX)) && (mcy <= (CY +
8 * EY)) /*&&!pausa*/) {
i = (mcy - CY) / EY;j = (mcx - CX) / EX;
if (arriba[i][j] != true && parejas <= 15) {
if (!arriba[i][j]) {
Arriba = Arriba + 1;
arriba[i][j] = true;arri();repaint();//Voltea la carta boca Arriba
if (Arriba == 1) {
carta1 += tablero[i][j];o = i;p = j;
}
if (Arriba == 2) {
carta2 += tablero[i][j];
//compara el valor de las dos cartas si son iguales determina que es una
pareja
if (carta1 == carta2) {
JOptionPane.showMessageDialog(null, "Forman una pareja",
"Memorama en Java", JOptionPane.PLAIN_MESSAGE);
Arriba = 0;carta1 = 0;carta2 = 0;arriba[i][j] = true;arriba[o][p] = true;
actualiza();repaint();
parejas = parejas + 1;
if (comprueba()==true) {
JOptionPane.showMessageDialog(null, "Fin del Juego..!!\nTu numero de parejas
encontradas : "+parejas, "Memorama en Java", JOptionPane.PLAIN_MESSAGE);
}
} else {
NE = NE + 1;
JOptionPane.showMessageDialog(null, "No forman pareja..!!",
"Memorama en Java", JOptionPane.PLAIN_MESSAGE);
Arriba = 0;carta1 = 0;carta2 = 0;
arriba[i][j] = false;
arriba[o][p] = false;;
arri();actualiza();repaint();
try {
String URLRegistro ="rmi://"+nombre+"/Memorama";
h =(MemoInt) Naming.lookup(URLRegistro);
h.turn();
}catch (Exception exc) {}
}
}
} else {
arriba[i][j] = false;
actualiza();
if (comprueba()==true) {
JOptionPane.showMessageDialog(null, "Fin del Juego..!!\nTu numero de parejas
encontradas : "+parejas, "Memorama en Java", JOptionPane.PLAIN_MESSAGE);
}
repaint();//Cata oculta
}//fin de la comparacion
}//fin del arriba
}//fin del if de mcx mcy
if (mcx >= 600 && mcx <= 750 && mcy >= 250 && mcy <= 280) {
System.exit(0);
}
}else{
JOptionPane.showMessageDialog(null, "No es tu turno..!!", "Memorama en Java",
JOptionPane.PLAIN_MESSAGE);
}
}
public void mouseMoved(MouseEvent me) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent me) {}
public void mouseExited(MouseEvent me) {}
public void mouseDragged(MouseEvent e) {}
class again extends TimerTask {
public void run() {
if(!mt()){
t=1;
repaint();
}else{
if(t==1){
JOptionPane.showMessageDialog(null, "Ahora es tu turno..!!", "Memorama en
Java", JOptionPane.PLAIN_MESSAGE);
t=0;
}
}
}
}
public static void main(String args[]) throws RemoteException
{
Cliente4 Cliente4 = new Cliente4(args[0]);
} // fin main
} // fin clase
------------------------------------------------------------------------------------------------------------
implements MemoInt
{
int i,j,k,l,t;
Random r = new Random();
int tablero[][] =
{{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}};
boolean arriba[][] = {{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false}};
public MemoImp( ) throws RemoteException
{
super( );
t=1;
for (k = 1; k <= 32; k++)
{//Coloca las cartas en forma aleatoria, realiza este proceso hasta llenar la matriz
for (l = 1; l <= 2; l++)
{//asi se forman las parejas colocando cada una 2 veces pero en diferente posicion
do
{
i = r.nextInt(8);
j = r.nextInt(8);
} while (tablero[i][j] != 0);
tablero[i][j] = k;
}
}
}
public int[][] tab( )throws RemoteException
{
return tablero;
}
public boolean[][] arr( boolean ar[][])throws RemoteException
{
for(int x =0;x<8;x++)
{
for(int y=0;y<8;y++)
{
if(ar[x][y]||arriba[x][y]){arriba[x][y]=true;}
}
}
return arriba;
}
public void arrib( boolean ar[][])throws RemoteException
{
for(int x =0;x<8;x++)
{
for(int y=0;y<8;y++)
{
if(ar[x][y]){arriba[x][y]=true;}else{arriba[x][y]=false;}
}
}
//return arriba;
}
public int turno( )throws RemoteException{return t;}
public void turn()throws RemoteException{if(t==4){t=1;}else{t++;}}
}