











Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Memorama programacion java para resolver
Tipo: Ejercicios
1 / 19
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!












import java.awt.; import java.awt.event.;JOptionPane.showMessageDialog(null, "Eres el jugador 2!!", "Memorama en Java", JOptionPane.PLAIN_MESSAGE); import javax.swing.; import javax.swing.JOptionPane; import java.util.; public class Memorama extends Frame implements MouseListener, MouseMotionListener { private int tablero[][] = {{0, 0, 0, 0},//Tablero del Juego se declara la matriz de 4 * 4 donde se colocaran las cartas en una forma aleatoria formando 8 parejas. {0, 0, 0, 0},//REPRESENTAMOS LOS ELEMENTOS DE LA MATRIZ CON UN 0 AL INICIO DEL JUEGO YA QUE AL INICIO TODAS LAS CARTAS SE ENCUANTRAN {0, 0, 0, 0},//OCULTAS. {0, 0, 0, 0}}; private boolean arriba[][]; //private boolean bocaArriba[][]; private final int CX = 100;//CX y CY establecen el centro geom�trico de las gr�ficas private final int CY = 100; private int NE = 0;//para contar el numero de clic que da el jugador y el numero de errores private int NC = 0; private int k; private int l; private int Arriba = 0;//para saber que cartas se encuentran boca arriba private int carta1 = 0; private int carta2 = 0;
private final int EX = 100;//EX y EY establecen el tama�o de las gr�ficas private final int EY = 100; private int mcy, mcx;//Variables con las cuales sabemos la posicion y movimiento del mouse private int mmx, mmy; private Random r = new Random();//declaramos la variable r que almacenara el valor del random public ImageIcon imagenFondo;//declamamos los objetos donde se cargaran la imagenes public ImageIcon imagenOculta; public ImageIcon imagen1; public ImageIcon imagen2; public ImageIcon imagen3; public ImageIcon imagen4; public ImageIcon imagen5; public ImageIcon imagen6; public ImageIcon imagen7; public ImageIcon imagen8; public String nombre; public int o;//la variable o y p guardan temporalmente las posiciones de la segunda carta al momento de ser volteada public int p; public int parejas;//lleva el control de las parejas encontradas public Memorama() { int i, j, k, l; addMouseListener(this); //Escuchamos eventos de raton addMouseMotionListener(this); // y de movimientos de raton setSize(1024, 768);//********************** arriba = new boolean[4][4]; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { arriba[i][j] = false; } } for (k = 1; k <= 8; 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
g.drawImage(imagen4.getImage(), px + 4, py + 4, 90, 90, null); break; case 5: g.drawImage(imagen5.getImage(), px + 4, py + 4, 90, 90, null); break; case 6: g.drawImage(imagen6.getImage(), px + 4, py + 4, 90, 90, null); break; case 7: g.drawImage(imagen7.getImage(), px + 4, py + 4, 90, 90, null); break; case 8: g.drawImage(imagen8.getImage(), px + 4, py + 4, 90, 90, null); break; } } //METODO DONDE SE DIBUJA EN TABLERO DE JUEGO 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 < 4; i++) { for (j = 0; j < 4; 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); } } } //salir g.setColor(Color.red); g.fillRect(600, 250, 150, 30); g.setColor(Color.green); g.fillRect(599, 310, 150, 30); //contenido de las opciones del juego g.setFont(new Font("Arial", Font.BOLD, 16)); g.setColor(Color.white);
g.drawString("Salir del Juego", 615, 270); g.setColor(Color.black); g.drawString("Nuevo Juego", 620, 330); g.setColor(Color.blue); } //MEDODO DONDE SE REALIZA LA MAYORIA DE LOS PROCESOS DEL JUEGO public void mouseClicked(MouseEvent me) { 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; //este if veridicva que se de clic sonbre el area de juego if ((mcx >= CX) && (mcy >= CY) && (mcx <= (CX + 4 * EX)) && (mcy <= (CY + 4 * EY)) /&&!pausa/) { i = (mcy - CY) / EY; j = (mcx - CX) / EX; //nos sirve para verificar que la carta que se intenta voltear esta oculta y el numero de parejas es menos que 7 if (arriba[i][j] != true && parejas <= 7) { if (!arriba[i][j]) { Arriba = Arriba + 1; arriba[i][j] = true;repaint();//Voltea la carta boca Arriba //este if toma la posicion de tablero[i][j] y se las asigna a o y p que son de la primera carta //y la variable carta guarda el valor de la primera carta if (Arriba == 1) { carta1 += tablero[i][j]; o = i; p = j; } //cuando Arriba vale 2 la variable carta2 toma el valor de la posicion de tablero[i][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); //regresamos el valor de las variables a sus valores iniciales Arriba = 0; carta1 = 0; carta2 = 0; //colocamos las cartas en vardadero para dejarlas visibels durante el resto del juego
/public static void main(String args[]) { //String nombre1 = ""; //nombre1 = JOptionPane.showInputDialog(null, "Nombre del Jugador", "Memorama en Java", JOptionPane.PLAIN_MESSAGE); //if (nombre1 != null) { Memorama coordenada = new Memorama(); // coordenada.NOMBRE(nombre1); //} }/ }
import java.io.; import java.rmi.; import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; import java.awt.; import java.awt.event.; import java.net.InetAddress; import javax.swing.; import javax.swing.JOptionPane; import java.util.; import java.util.Timer; import java.util.TimerTask; public class Cliente4 extends Frame implements MouseListener, MouseMotionListener { private 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}}; private 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}}; private boolean arriba2[][] = {{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}}; private final int CX = 50;//CX y CY establecen el centro geom�trico de las gr�ficas private final int CY = 50; private int NE = 0;//para contar el numero de clic que da el jugador y el numero de errores private int NC = 0; private int k; private int l; private int t; private int Arriba = 0;//para saber que cartas se encuentran boca arriba private int carta1 = 0; private int carta2 = 0; private final int EX = 50;//EX y EY establecen el tama�o de las gr�ficas private final int EY = 50; private int mcy, mcx;//Variables con las cuales sabemos la posicion y movimiento del mouse private int mmx, mmy; private Random r = new Random();//declaramos la variable r que almacenara el valor del random public ImageIcon imagenFondo;//declamamos los objetos donde se cargaran la imagenes public ImageIcon imagenOculta; public ImageIcon imagen1; public ImageIcon imagen2; public ImageIcon imagen3; public ImageIcon imagen4; public ImageIcon imagen5; public ImageIcon imagen6; public ImageIcon imagen7; public ImageIcon imagen8; public ImageIcon imagen9; public ImageIcon imagen10; public ImageIcon imagen11; public ImageIcon imagen12; public ImageIcon imagen13; public ImageIcon imagen14; public ImageIcon imagen15; public ImageIcon imagen16; public ImageIcon imagen17; public ImageIcon imagen18; public ImageIcon imagen19; public ImageIcon imagen20; public ImageIcon imagen21; public ImageIcon imagen22; public ImageIcon imagen23;
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")); imagen9 = new ImageIcon(getClass().getResource("9.png")); imagen10 = new ImageIcon(getClass().getResource("10.png")); imagen11 = new ImageIcon(getClass().getResource("11.png")); imagen12 = new ImageIcon(getClass().getResource("12.png")); imagen13 = new ImageIcon(getClass().getResource("13.png")); imagen14 = new ImageIcon(getClass().getResource("14.png")); imagen15 = new ImageIcon(getClass().getResource("15.png")); imagen16 = new ImageIcon(getClass().getResource("16.png")); imagen17 = new ImageIcon(getClass().getResource("17.png")); imagen18 = new ImageIcon(getClass().getResource("18.png")); imagen19 = new ImageIcon(getClass().getResource("19.jpg")); imagen20 = new ImageIcon(getClass().getResource("20.jpg")); imagen21 = new ImageIcon(getClass().getResource("21.JPG")); imagen22 = new ImageIcon(getClass().getResource("22.jpg")); imagen23 = new ImageIcon(getClass().getResource("23.jpg")); imagen24 = new ImageIcon(getClass().getResource("24.jpg")); imagen25 = new ImageIcon(getClass().getResource("25.jpg")); imagen26 = new ImageIcon(getClass().getResource("26.jpg")); imagen27 = new ImageIcon(getClass().getResource("27.jpg")); imagen28 = new ImageIcon(getClass().getResource("28.jpg")); imagen29 = new ImageIcon(getClass().getResource("29.jpg")); imagen30 = new ImageIcon(getClass().getResource("30.jpg")); imagen31 = new ImageIcon(getClass().getResource("31.jpg")); imagen32 = new ImageIcon(getClass().getResource("32.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 actualiza() {
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;
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
import java.rmi.; import java.rmi.server.; import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; import java.net.; import java.io.; public class Servidor { public static void main(String args[]) { String URLRegistro; try { //LocateRegistry.createRegistry(1099); MemoImp objExportado = new MemoImp(); String host = InetAddress.getLocalHost().getHostName(); URLRegistro ="rmi://"+args[0]+"/Memorama"; Naming.rebind(URLRegistro, objExportado); System.out.println("Servidor Memorama preparado."); } // fin try catch (Exception excr) { System.out.println("Excepción en Servidor.main: " + excr); } // fin catch } // fin mai } // fin clase
import java.rmi.*; public interface MemoInt extends Remote { public int[][] tab( )throws java.rmi.RemoteException; public boolean[][] arr( boolean ar[][])throws java.rmi.RemoteException; public int turno()throws java.rmi.RemoteException; public void turn()throws java.rmi.RemoteException; public void arrib( boolean ar[][])throws RemoteException; }
import java.rmi.; import java.rmi.server.; import java.util.*; public class MemoImp extends UnicastRemoteObject
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++;}} }