Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package uniandes.cupi2.criaturasMagicas.interfaz;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Image;
- import java.io.File;
- import java.io.IOException;
- import javax.swing.Icon;
- import javax.swing.ImageIcon;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.UIManager;
- import uniandes.cupi2.criaturasMagicas.mundo.Casilla.Contenido;
- import uniandes.cupi2.criaturasMagicas.mundo.Casilla.Tipo;
- import uniandes.cupi2.criaturasMagicas.mundo.Criatura;
- import uniandes.cupi2.criaturasMagicas.mundo.CriaturasMagicas;
- public class InterfazCriaturasMagicas extends JFrame
- {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private CriaturasMagicas mundo;
- private PanelInformacionDelJuego panelInfo;
- private PanelMapa panelMapa;
- private PanelEnciclopedia panelEnciclopedia;
- private PanelOpciones panelOpciones;
- private PanelConsultas panelConsultas;
- public InterfazCriaturasMagicas()
- {
- setSize(780, 750);
- setTitle("Criaturas Magicas");
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- getContentPane().setBackground(new Color(48, 41, 84));
- setLayout(new BorderLayout());
- setResizable(false);
- panelInfo = new PanelInformacionDelJuego(this);
- add(panelInfo, BorderLayout.NORTH);
- JPanel panelCentro = new JPanel();
- panelCentro.setLayout(new BorderLayout());
- panelCentro.setOpaque(false);
- add(panelCentro, BorderLayout.CENTER);
- panelMapa = new PanelMapa(this);
- panelCentro.add(panelMapa, BorderLayout.CENTER);
- panelEnciclopedia = new PanelEnciclopedia(this);
- panelCentro.add(panelEnciclopedia, BorderLayout.EAST);
- JPanel panelInferior = new JPanel();
- panelInferior.setLayout(new BorderLayout());
- add(panelInferior, BorderLayout.SOUTH);
- panelConsultas = new PanelConsultas(this);
- panelInferior.add(panelConsultas, BorderLayout.NORTH);
- panelOpciones = new PanelOpciones(this);
- panelInferior.add(panelOpciones, BorderLayout.SOUTH);
- try
- {
- mundo = new CriaturasMagicas();
- panelEnciclopedia.inicializar();
- }catch (Exception e)
- {
- JOptionPane.showMessageDialog(this, e.getMessage(), "No se puede cargar el mundo",
- JOptionPane.ERROR_MESSAGE);
- }
- }
- public static void main(String[] args)
- {
- try
- {
- // Unifica la interfaz para Mac y para Windows.
- UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
- InterfazCriaturasMagicas interfaz = new InterfazCriaturasMagicas();
- interfaz.setVisible(true);
- }catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public void metodo1()
- {
- String rta = mundo.metodo1();
- JOptionPane.showMessageDialog(this, rta, "Opcion1", JOptionPane.INFORMATION_MESSAGE);
- }
- public void metodo2()
- {
- String rta = mundo.metodo2();
- JOptionPane.showMessageDialog(this, rta, "Opcion2", JOptionPane.INFORMATION_MESSAGE);
- }
- public CriaturasMagicas darMundo()
- {
- return mundo;
- }
- public void darAnterior()
- {
- try
- {
- mundo.darAnterior();
- panelEnciclopedia.actualizar();
- }
- catch (Exception e)
- {
- JOptionPane.showMessageDialog(null, "Ya esta en la primera criatura");
- }
- }
- public void darSiguiente()
- {
- try
- {
- mundo.darSiguiente();
- panelEnciclopedia.actualizar();
- }catch (Exception e)
- {
- JOptionPane.showMessageDialog(null, " Ya esta la ultima criatura. ");
- }
- }
- public void cargarMapaDeLaCriatura()
- {
- panelMapa.cargar();
- panelEnciclopedia.actualizar();
- panelConsultas.Activar();
- panelInfo.actualizarCargar();
- }
- public void darCriaturasPorFila()
- {
- try
- {
- String mensaje = JOptionPane.showInputDialog(this, "Ingrese la fila:");
- int a = mundo.darCantidadCriaturasPorFila(Integer.parseInt(mensaje) - 1);
- JOptionPane.showMessageDialog(null, "En la fila indicada hay " + a + " criaturas");
- }
- catch (Exception e)
- {
- if(e.getMessage() != null || e.getMessage() != "")
- {
- JOptionPane.showMessageDialog(null, "El numero indicado no es valido.");
- darCriaturasPorFila();
- }
- }
- }
- public void darCriaturasPorColumna()
- {
- try
- {
- String mensaje = JOptionPane.showInputDialog(this, "Ingrese la columna:");
- int cantidad = mundo.darCantidadCriaturasPorColumna(Integer.parseInt(mensaje) - 1);
- JOptionPane.showMessageDialog(null, "En la columna indicada hay " + cantidad + " criaturas.");
- }catch (Exception e)
- {
- JOptionPane.showMessageDialog(null, "El numero de columna indicado no es valido.");
- darCriaturasPorColumna();
- }
- }
- public void darCriaturaMayorPuntaje()
- {
- Criatura mayorPuntaje = mundo.darCriaturaMayorPuntaje();
- JOptionPane.showMessageDialog(this, "La criatura con mayor puntaje es " + mayorPuntaje.darNombre());
- }
- public void darPuntajePorCuadrante()
- {
- try
- {
- String mensaje = JOptionPane.showInputDialog(this, "Ingrese el cuadrante:");
- if(Integer.parseInt(mensaje) < 1 || Integer.parseInt(mensaje) > 4)
- {
- JOptionPane.showMessageDialog(null, "El numero de cuadrante debe estar entre 1 y 4.");
- darPuntajePorCuadrante();
- }
- else
- {
- int cantidad = mundo.calcularPuntajePorCuadrante(Integer.parseInt(mensaje));
- JOptionPane.showMessageDialog(null, "En el cuadrante indicado el puntaje es " + cantidad);
- }
- }catch (Exception e)
- {
- JOptionPane.showMessageDialog(null, "El numero de cuadrante indicado no es valido.");
- }
- }
- public void cargar() throws IOException
- {
- JFileChooser loader = new JFileChooser("./data");
- loader.setDialogTitle("Escoja el archivo del mapa");
- int resultado = loader.showOpenDialog(this);
- File archivoCriaturasMagicas = null;
- if(resultado == JFileChooser.APPROVE_OPTION)
- {
- archivoCriaturasMagicas = loader.getSelectedFile();
- try
- {
- mundo.inicializarMatriz(archivoCriaturasMagicas);
- if(panelMapa.estaCargado() == false)
- panelMapa.cargar();
- actualizar();
- actualizarJuego();
- panelConsultas.Activar();
- }catch (Exception e)
- {
- JOptionPane.showMessageDialog(this, "Error al cargar el mapa");
- }
- }
- }
- public void actualizar()
- {
- panelMapa.actualizar(mundo.darMatriz());
- }
- public void actualizarJuego()
- {
- panelInfo.actualizarCargar();
- }
- public void reiniciar()
- {
- if(panelMapa.estaCargado() == true)
- {
- panelMapa.reiniciar();
- panelMapa.estaCargado();
- panelInfo.reiniciar();
- mundo.reiniciar();
- panelConsultas.Activar();
- for (int i = 0; i < PanelMapa.FIL; i++)
- {
- for (int j = 0; j < PanelMapa.COL; j++)
- {
- mundo.darCasilla(i, j).cambiarEstado(Tipo.SIN_VISITAR);
- }
- }
- }else
- JOptionPane.showMessageDialog(this, "No se puede reiniciar ya que no esta cargado.");
- }
- public void visitarCasilla(int fila, int columna)
- {
- if(mundo.darCasilla(fila, columna).darEstado() == Tipo.VISITADA)
- {
- JOptionPane.showMessageDialog(this, "La casilla ya fue visitada ", "Cuidado", JOptionPane.ERROR_MESSAGE);
- }
- if(mundo.darMovimientosRestantes() <= 0)
- {
- JOptionPane.showMessageDialog(this, "Te has quedado sin movimientos, has perdido.", "Perdio",
- JOptionPane.ERROR_MESSAGE);
- panelMapa.deshabilitar();
- panelConsultas.reiniciar();
- }
- if(mundo.darPuntaje() >= 5000)
- {
- JOptionPane.showMessageDialog(this, "Felicitaciones, has ganado!", "Gano", JOptionPane.INFORMATION_MESSAGE);
- panelMapa.deshabilitar();
- panelConsultas.reiniciar();
- }
- if(mundo.darPuntaje() <= -3000)
- {
- JOptionPane.showMessageDialog(this, "El puntaje minimo es -3000, ha perdido.", "Perdio",
- JOptionPane.ERROR_MESSAGE);
- panelMapa.deshabilitar();
- panelConsultas.reiniciar();
- }else
- {
- if(mundo.darCasilla(fila, columna).darContenido() == Contenido.CRIATURA)
- {
- panelMapa.visitarCriatura(fila, columna, mundo.darCasilla(fila, columna).darImagenCriatura());
- mundo.darCasilla(fila, columna).cambiarEstado(Tipo.VISITADA);
- try
- {
- Icon icon = new ImageIcon(
- new ImageIcon(mundo.darCasilla(fila, columna).darCriatura().darRutaImagen()).getImage()
- .getScaledInstance(150, 150, Image.SCALE_DEFAULT));
- mundo.visitarCasillaCriatura(mundo.darCasilla(fila, columna).darCriatura());
- JOptionPane.showMessageDialog(this,
- "Ha encontrado 1 " + mundo.darCasilla(fila, columna).darCriatura().darNombre(),
- "Encontrado", JOptionPane.INFORMATION_MESSAGE, icon);
- }catch (Exception e)
- {
- if(e.getMessage() == "Gano")
- {
- JOptionPane.showMessageDialog(this, "Has ganado, felicitaciones!", "Gano",
- JOptionPane.INFORMATION_MESSAGE);
- panelMapa.deshabilitar();
- panelConsultas.reiniciar();
- }else
- {
- JOptionPane.showMessageDialog(this, "Has perdido", "Perdio", JOptionPane.INFORMATION_MESSAGE);
- panelMapa.deshabilitar();
- panelConsultas.reiniciar();
- }
- }
- actualizarJuego();
- }
- else
- {
- panelMapa.visitar(fila, columna);
- mundo.darCasilla(fila, columna).cambiarEstado(Tipo.VISITADA);
- try
- {
- mundo.visitarCasillaVacia();
- }catch (Exception e)
- {
- JOptionPane.showMessageDialog(this, "Te has quedado sin movimientos, has perdido.", "Perdio",
- JOptionPane.ERROR_MESSAGE);
- panelMapa.deshabilitar();
- panelConsultas.reiniciar();
- }
- actualizarJuego();
- }
- int criaturasLuz = 0;
- for(int i = -1; i < 2; i++)
- {
- for(int j = -1; j < 2; j++)
- {
- if(fila + i < 0 || fila + i > mundo.darMatriz().length || columna + j < 0 || columna + j > mundo.darMatriz()[0].length)
- continue;
- if(i != 0 || j != 0)
- {
- if(mundo.darCasilla(fila+i, columna+j).darContenido() == Contenido.CRIATURA)
- {
- if(mundo.darCasilla(fila+i, columna+j).darCriatura().esSerDeLuz())
- {
- criaturasLuz++;
- }
- }
- }
- }
- }
- JOptionPane.showMessageDialog(this, "There are " + criaturasLuz + " creatures of light around the current square (" + fila + ", " + columna + ").", "Creatures around", JOptionPane.INFORMATION_MESSAGE);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement