miércoles, 23 de noviembre de 2011

Eventos, Errores y Excepciones

Buscaminas
Eventos: 

Componente Generador
Tipo de Evento
Acción que dispara
Botón Grafico:
“Iniciar”
Presionar y soltar
Inicia la creación del tablero, de los indicadores de mina y de las minas en sí, todas estas escondidas en casillas
Botón Grafico:
“Casilla”
Presionar y soltar
Destapa la casilla seleccionada, esta revelara un indicador de mina, una casilla vacía o una mina.
Botón Grafico:
“Casilla - Bandera”
Presionar y soltar
(Clic secundario)
Cubre la casilla con una Bandera indicadora, esta sirve para que el jugador se auto prevenga de destapar dicha casilla.
Menú Opción
“Juego”
Presionar
Despliegas las opciones para poder reiniciar el juego, salir y modificar opciones
Menú Opción
“Ayuda”
Presionar
Muestra una pequeña introducción para aprender a jugar al buscaminas.
Botón Grafico Menú
“Salir”
Presionar
Termina el juego actual.
Botón Grafico menú
“Reiniciar”
Presionar
Termina el juago actual, y comienza uno nuevo con la configuración actual.

Errores y excepciones:



Modo en que se genera
Manejo
Eliminación de archivos de configuración.
Despliegue de un mensaje de error en el que se detalle el archivo faltante y se muestre una posible solución para el usuario.
Eliminación de archivos de puntuaciones.
Despliegue de mensaje de error de archivo de puntuaciones faltantes, y cargar una copia de respaldo de este mismo, con puntuaciones anteriores.
Imágenes Faltantes.
Mensaje en el que se indique al usuario que las Imágenes no fueron cargadas correctamente y se pida reiniciar el juego.
Error Inesperado.
Mensaje en el que se indique al usuario que ocurrió un error inesperado, y darle la opción de levantar un reporte especificando el tipo de error.

Elaborado con mi compañero Sergio Rdz

Herencia


Herencia – SIASE



Alumno es un tipo de Usuario
Maestro es un tipo de Usuario
Cuota Interna es un tipo de pago

Herencia Buscaminas



Jugador fácil es un tipo de Jugador
Jugador Experto es un tipo de Jugador
Tablero Fácil es un tipo de Tablero
Tablero Experto es un tipo de Tablero


Elaborado con mi compañero

Sergio Rdz

Biblioteca


Clases
Atributos
Métodos
Usuario
Nombre
Contraseña
Multas
Login
Logout
PedirLibro
Consultar
Libro
Estado
Consulta
Tiempo
MostraImagen




Herencia

  • Usuario Licenciatura es un tipo de usuario
  • Usuario Maestría es un tipo de usuario
  • Usuario Doctorado es un tipo de usuario
  • Usuario Maestro es un tipo de usuario

Elaborado con mi compañero

Sergio Rdz


Patrones de Diseño

Bebida Cafeinada
 
public abstract class BebidaCafeinada
{
 public final void prepararReceta()
 {
  hervir();
  poner();
  servir();
  agregarCondimentos();
  System.out.println();
 }

 public abstract void poner();
 public abstract void agregarCondimentos();

 public void hervir()
 {
  System.out.println("Hirviendo agua. ");
 }

 public void servir()
 {
  System.out.println("Sirviendo.");
 }
}
 
public class Te extends BebidaCafeinada
{
 public void poner()
 {
  System.out.println("Poniendo Té.");
 }

 public void agregarCondimentos()
 {
  System.out.println("Agregando limón.");
 }
}

Café
 
public class Cafe extends BebidaCafeinada
{
 public void poner()
 {
  System.out.println("Poniendo café.");
 }

 public void agregarCondimentos()
 {
  System.out.println("Agregando Azucar y Leche.");
 }
}

Prueba Bebidas
 
public class PruebaBebidas
{
 public static void main(String[] args)
 {
  Te te1 = new Te();
  Cafe cafe1 = new Cafe();

  System.out.println("Preparando té.");
  te1.prepararReceta();

  System.out.println("Preparando Café.");
  cafe1.prepararReceta();
 }
}

Autogeneración de código juego

Para realizar la autogeneración de código utilice la herramienta de Umbrello


Atacable
 
/**
 * Interface Atacable
 */
public interface Atacable {

  //
  // Fields
  //

  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   * @param        a
   */
  public void atacar( Atacable a );


  /**
   * @param        intensidad
   */
  public void recibirAtaque( int intensidad );


}

Capturable
 

/**
 * Interface Capturable
 */
public interface Capturable {

  //
  // Fields
  //

  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   */
  public void capturar(  );


  /**
   */
  public void liberar(  );


}
/**
 * Interface Capturable
 */
public interface Capturable {

  //
  // Fields
  //

  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   */
  public void capturar(  );


  /**
   */
  public void liberar(  );


}

Congelable
 

/**
 * Interface Congelable
 */
public interface Congelable {

  //
  // Fields
  //

  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   */
  public void congelar(  );


}

Curable
 

/**
 * Interface Curable
 */
public interface Curable {

  //
  // Fields
  //

  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   * @return       int
   */
  public int curar(  );


}

Mago
 

import java.util.*;


/**
 * Class Mago
 */
public class Mago extends Personaje {

  //
  // Fields
  //

  
  //
  // Constructors
  //
  public Mago () { };
  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   * @param        c
   */
  public void lanzarHechizo( Congelable c )
  {
  }


  /**
   * @param        c
   */
  public void curar( Curable c )
  {
  }


}
Ogro
 

import java.util.*;


/**
 * Class Ogro
 */
public class Ogro extends PersonajeAtacable implements Capturable, Congelable {

  //
  // Fields
  //

  private boolean congelado = false;
  
  //
  // Constructors
  //
  public Ogro () { };
  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  /**
   * Set the value of congelado
   * @param newVar the new value of congelado
   */
  private void setCongelado ( boolean newVar ) {
    congelado = newVar;
  }

  /**
   * Get the value of congelado
   * @return the value of congelado
   */
  private boolean getCongelado ( ) {
    return congelado;
  }

  //
  // Other methods
  //

  /**
   * @param        c
   */
  public void capturar( Capturable c )
  {
  }


  /**
   */
  public void capturar(  )
  {
  }


  /**
   */
  public void liberar(  )
  {
  }


  /**
   */
  public void congelar(  )
  {
  }


}

Personaje
 


/**
 * Class Personaje
 */
public class Personaje {

  //
  // Fields
  //

  private String nombre;
  
  //
  // Constructors
  //
  public Personaje () { };
  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  /**
   * Set the value of nombre
   * @param newVar the new value of nombre
   */
  private void setNombre ( String newVar ) {
    nombre = newVar;
  }

  /**
   * Get the value of nombre
   * @return the value of nombre
   */
  private String getNombre ( ) {
    return nombre;
  }

  //
  // Other methods
  //

}
Personaje Atacable
 

/**
 * Class PersonajeAtacable
 */
public class PersonajeAtacable extends Personaje implements Atacable {

  //
  // Fields
  //

  static private int DEFAULT_VIDA = 100;
  private int vida;
  
  //
  // Constructors
  //
  public PersonajeAtacable () { };
  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  /**
   * Get the value of DEFAULT_VIDA
   * @return the value of DEFAULT_VIDA
   */
  private int getDEFAULT_VIDA ( ) {
    return DEFAULT_VIDA;
  }

  /**
   * Set the value of vida
   * @param newVar the new value of vida
   */
  private void setVida ( int newVar ) {
    vida = newVar;
  }

  /**
   * Get the value of vida
   * @return the value of vida
   */
  private int getVida ( ) {
    return vida;
  }

  //
  // Other methods
  //

  /**
   * @param        cuanta
   */
  public void restarVida( int cuanta )
  {
  }


  /**
   * @param        a
   */
  public void atacar( Atacable a )
  {
  }


  /**
   * @param        intensidad
   */
  public void recibirAtaque( int intensidad )
  {
  }


}
Princesa
 


/**
 * Class Princesa
 */
public class Princesa extends Personaje implements Capturable {

  //
  // Fields
  //

  private String status = "libre";
  
  //
  // Constructors
  //
  public Princesa () { };
  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  /**
   * Set the value of status
   * @param newVar the new value of status
   */
  private void setStatus ( String newVar ) {
    status = newVar;
  }

  /**
   * Get the value of status
   * @return the value of status
   */
  private String getStatus ( ) {
    return status;
  }

  //
  // Other methods
  //

  /**
   */
  public void capturar(  )
  {
  }


  /**
   */
  public void liberar(  )
  {
  }


}
Principe
 

import java.util.*;


/**
 * Class Principe
 */
public class Principe extends PersonajeAtacable implements Curable {

  //
  // Fields
  //

  
  //
  // Constructors
  //
  public Principe () { };
  
  //
  // Methods
  //


  //
  // Accessor methods
  //

  //
  // Other methods
  //

  /**
   * @return       Mago
   */
  public Mago invocarMago(  )
  {
  }


  /**
   * @param        o
   */
  public void atacar( Ogro o )
  {
  }


  /**
   * @param        c
   */
  public void rescatar( Capturable c )
  {
  }


  /**
   * @return       int
   */
  public int curar(  )
  {
  }


}

Ejercicios SQL

Ejercicio A


SELECT City, CompanyName
FROM customers
WHERE City LIKE 'ber%'

Ejercicio B


SELECT CompanyName, ContactName
FROM customers
ORDER BY ContactName

Ejercicio C



SELECT COUNT(ContactName)
FROM customers
WHERE ContactName LIKE 'Ma%'
Ejercicio D

SELECT ContactName, City
FROM customers
WHERE ContactName LIKE 'g%'
AND City LIKE 'b%'

Ejercicio A



SELECT Materias.Materia, Count(Calificaciones.Clave)
FROM Materias, Calificaciones
WHERE Materias.Clave = Calificaciones.Clave
GROUP BY Materia

Ejercicio B



SELECT Materias.Materia, Calificaciones.Calificacion
FROM Materias, Calificaciones
WHERE Clave.Materias = Clave.Calificaciones
HAVING Calificaciones  > 76
ORDER BY Calificaciones 

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.