jueves, 3 de noviembre de 2011

Patrones de Diseño


El patrón de diseño aplicado a mi proyecto será el Modelo Vista Controlador (MVC). Este modelo o arquitectura me será útil para poder separar la parte gráfica, controlador y  el modelo. Este modelo será de gran ayuda para mantener en orden las partes y  por ejemplo no tener todo junto la interfaz gráfica (GUI) con los eventos.

  • Modelo: Aquí se implementa la lógica del movimiento de las piezas.
  • Vista: Aquí se implementa la interfaz gráfica con la que actúa el usuario y además implementan los listeners.
  • Controlador: Aquí se implementan los eventos de mi proyecto.




Eventos, Errores y Excepciones

Eventos

Componente gráfico generador
Tipo de evento
Acción que se dispara
Botón jugar
Ocurre al momento de presionarlo
Muestra la inicialización del juego
Opción menú juego
Ocurre al momento de presionarlo
Muestra las opciones de jugar y salir
Opción menú ver
Ocurre al momento de presionarlo
Muestra la opción de ayuda
 Opción menú jugar
Ocurre al momento de presionarlo
Muestra la inicialización del juego
Opción menú salir
Ocurre al momento de presionarlo
Finaliza el juego
Opción menú ayuda
Ocurre al momento de presionarlo
Muestra información acerca del juego
Botones tablero
Ocurre al momento de presionarlo
Cambia de posición la pieza



Errores y Excepciones


Modo en que se genera
Manejo
Al momento que no puede cargar la imagen de fondo
Despliega un mensaje que la imagen no se encuentra
Al momento que no se puede cargar la imagen de las piezas
Despliega un mensaje que la imagen no se encuentra

Diagramas de Secuencia

Caso Exitoso

Caso Fallido


Caso Exitoso


miércoles, 2 de noviembre de 2011

Interfaz Gráfica

Ventana principal que se compone de un menú,  el cual se compone de dos opciones jugar y ver, además se puede observar un botón para inicializar el juego





Ventana que se muestra al inicializar el juego



martes, 1 de noviembre de 2011

Evento, Errores y Excepciones

Eventos
 
 public void agregarActionListener(ActionListener listener)
 {
  biniciar.addActionListener(listener);
  biniciar.setActionCommand("Jugar");
  salir.addActionListener(listener);
  salir.setActionCommand("Salir");
  jugar.addActionListener(listener);
  jugar.setActionCommand("jugar");
  ver.addActionListener(listener);
  ver.setActionCommand("Ver");
 }     
 
public void actionPerformed(ActionEvent e)
 {
      vista = new Vista();
  String evento = e.getActionCommand();
        if(evento.equals("Jugar"))
        {   
              vista.tablero();
    
        }
        else if(evento.equals("Salir")){
          System.exit(0);
        }
        else if(evento.equals("Ver")){
         }
   }
    
Errores y Excepciones
  try{ ImageIcon ima = new ImageIcon("damas.png");
    } catch(NullPointerException e){
 System.out.println("No se pudó cargar la imagen");
    }

Patrones de Diseño

Modelo Vista Controlador

 Vista
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Vista{
    private JFrame ventana;
    private JButton b1, b3;
    private JButton b2 [][] = new JButton [8][8];
    private JPanel p1 = new JPanel();
    private JPanel der,izq;
    private JPanel p2, p3,arr,aba;
    private JLabel l2;
    private JMenuBar barra;
    JMenu archivo, ayuda;
    JMenuItem jugar,salir,ver;
    Image img;

    public Vista(){
 ventana = new JFrame ();
 ventana.setTitle("DAMAS");
 menu();
 ventanai();
 ventana.setResizable(false);
 ventana.setSize(600,600);
 ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 ventana.setVisible(true);
     }

    public void menu(){
 barra = new JMenuBar();
 archivo = new JMenu("Juego");
 ayuda = new JMenu("Ayuda");
        jugar = new JMenuItem("Jugar");
 salir = new JMenuItem("Salir");
 ver = new JMenuItem("Ver");
 archivo.add(jugar);
 archivo.add(salir);
 ayuda.add(ver);
        barra.add(archivo);
 barra.add(ayuda);
        ventana.setJMenuBar(barra);
    }

    public void ventanai (){
 p1 = new JPanel();
 l2 = new JLabel();
 ImageIcon ima = new ImageIcon("damas.jpg");
 p1.setLayout(null);
 p1.setBackground(Color.WHITE);
 b1 = new JButton ("JUGAR");
 b1.setBackground(Color.WHITE);
 b1.setBounds(250, 240, 100, 50);
 p1.add(l2);
 l2.setIcon(ima);
 l2.setSize(600,600);
 l2.setVisible(true);
        p1.add(b1);
 ventana.add(p1);
 ventana.pack();
 p1.setVisible(true); 
    }
 
 public void agregarActionListener(ActionListener listener)
 {
  b1.addActionListener(listener);
  b1.setActionCommand("JUGAR");
  salir.addActionListener(listener);
  salir.setActionCommand("SALIR");
 }
    
    public void tablero(){
 p2 = new JPanel();
 p2.setBackground(Color.WHITE);
 p2.setLayout ( new GridLayout(8,8)); 
 for( int i = 0; i < 3; i++){
     for( int j = 0; j < 8; j++){
         if((i + j) % 2 != 0){
      b2[i][j] = new JButton("", new ImageIcon("rojo.png"));
      b2[i][j].setBackground(Color.BLACK);
  }
  else {
      b2[i][j] = new JButton("");
      b2[i][j].setBackground(Color.WHITE); 
       }    
     }
 }
        for( int i = 3; i <= 4; i++){
       for( int j = 0; j < 8; j++){
         if((i + j) % 2 != 0){
      b2[i][j] = new JButton("");
      b2[i][j].setBackground(Color.BLACK);
      }
  else {
      b2[i][j] = new JButton("");
      b2[i][j].setBackground(Color.WHITE); 
      }
        }
 }
 
    for( int i = 5; i < 8; i++){
      for( int j = 0; j < 8; j++){
      if((i + j) % 2 != 0){
      b2[i][j] = new JButton("", new ImageIcon("azul.png"));
      b2[i][j].setBackground(Color.BLACK);
      }
    else {
      b2[i][j] = new JButton("");
      b2[i][j].setBackground(Color.WHITE); 
     }
      }
   } 
     
    for( int i = 0; i < 8; i++){
       for( int j = 0; j < 8; j++){
    p2.add(b2[i][j]);
         }
      }
        ventana.add(p2);      
    }
 }

Controlador
  
import java.awt.event.*;

public class Controlador implements ActionListener{
    Vista vista;
    Modelo modelo;

    public Controlador(Vista vista, Modelo modelo){
  this.vista = vista;
  this.modelo = modelo;
        vista.agregarActionListener(this);
    }

     public void actionPerformed(ActionEvent e)
 {
      vista = new Vista();
  String evento = e.getActionCommand();
        if(evento.equals("JUGAR"))
        {   
              vista.tablero();
    
        }
        else if(evento.equals("SALIR")){
          System.exit(0);
        }
 }

}
Modelo
  

public class Modelo {
 
 public Modelo(){
  
 }
 
 public void iniciar(){
 
 }
 
 public void salir(){
  
 }
 
 public void terminar(){
  
 }

}
Main
  
public class Damas
{
 public static void main (String[] args)
 {
  Vista vista1= new Vista();
  Modelo modelo1 = new Modelo();
  Controlador contr1 = new Controlador(vista1, modelo1);
 }
}

Interfaz Gráfica

Ventana principal que se compone de un botón que nos permite inicializar el juego


Menu con las opciones de juego y ayuda



Ventana que se muestra al inicializar el juego


Referencia
Imagen