Escolar Documentos
Profissional Documentos
Cultura Documentos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
Análisis:
1. Entradas: Controlados por acciones del mouse
a. JButton Fácil: con darle click el juego comienza con dificultad fácil
b. JButton Medio: con darle click el juego comienza con dificultad media
c. JButton Difícil: con darle click el juego comienza con dificultad difícil
d. JButton Instrucciones: con darle click se muestra un cuadro de diálogo con las
instrucciones del juego
e. JButton Salir: con darle click se cierra la ventana principal
f. Por medio de clicks del mouse se determinan:
i. Coordenadas para cargar la pieza
ii. Coordenadas para disparar
2. Salidas:
a. Ventana principal
b. Cuadro de diálogo conteniendo las instrucciones del juego
c. Tablero que contiene imágenes de cuadros con colores
d. Arreglo que contiene imágenes de figuras
e. Puntaje actual
f. Mensaje de fin de juego ya sea por juego perdido o ganado
3. Condiciones:
a. Para cargar una pieza el mouse debe estar alineado con la pieza y dar click.
b. Para disparar una pieza el mouse debe estar alineado con la columna donde se
desea disparar.
c. Para que los bloques se destruyan deben de haber por lo menos seis cuadros del
mismo color y al menos uno de debe de haber sido disparado.
d. Para que un cuadro no se caiga este debe estar en contacto con bloques que en
cadena tocan el tope.
e. Si es posible, las figuras disparadas deben encajar en el tope.
f. Se pierde cuando los cuadros tocan la línea de disparo.
g. Se gana el juego cuando ya no queda ningún cuadro.
4. Descripción de ciclos:
Clase Driver_Inicio: No hay ciclos
Clase InicioControlPanel: No hay ciclos
Clase Driver_Stakka: No hay ciclos
Clase StakkaControlPanel: No hay ciclos
Clase StakkaPanel:
1. En StakkaPanel(int espera, int cant_Colores, int cant_Filas): no hay ciclos
2. En Iniciar():
Ciclo recorre espacios de figuras:
¿Qué se repite?:
Ciclo recorre arreglo figuras
¿Qué condición controla la repetición?:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
Mientras a<cant_Filas/2
Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Se elige pieza aleatoriamente
Se elige color aleatoriamente
Crear pieza
Ciclo recorre filas tablero
¿Qué condición controla la repetición?:
Mientras b<figuras.length
Ciclo recorre Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
Mientras fil<2
Ciclo recorre Ciclo recorre columnas tablero:
¿Qué se repite?:
Colocar pieza en tablero
¿Qué condición controla la repetición?:
Mientras col<2
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
Mientras fil<cant_Filas
Ciclo recorre columnas tablero:
¿Qué se repite?:
Revisar si el espacio está vacío
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
Mientras fil<tablero.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Colocar cuadro negro
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<tablero.length
Ciclo recorre columnas tablero:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
¿Qué se repite?:
Agregar listener
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Se elige pieza aleatoriamente
Se elige color aleatoriamente
Se coloca la pieza
Agregar listener
¿Qué condición controla la repetición?:
Mientras fil<figuras.length
3. En agregar():
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<tablero.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Agregar componente
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Agregar componente
¿Qué condición controla la repetición?:
Mientras fil<figuras.length
4. En terminar():
Ciclo recorre columnas tablero:
¿Qué se repite?:
Revisar si hay un cuadro negro en el tope
¿Qué condición controla la repetición?:
Mientras fil<figuras[0].length
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<tablero.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Quitar listener
¿Qué condición controla la repetición?:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
Mientras col<tablero[0].length
Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Quitar listener
¿Qué condición controla la repetición?:
Mientras fil<figuras.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Revisar si hay un cuadro negro en el fondo
¿Qué condición controla la repetición?:
Mientras fil<figuras[0].length
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<tablero.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Quitar listener
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Quitar listener
¿Qué condición controla la repetición?:
Mientras fil<figuras.length
13. En botar():
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<tablero.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Propone eliminar todo cuadro
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Determina que cuadros no se eliminarán
¿Qué condición controla la repetición?:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
Mientras col<tablero[0].length
Ciclo recorre filas tablero:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<tablero.length
Ciclo recorre columnas tablero:
¿Qué se repite?:
Revisa los cuadros a destruir
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
5. Clases
Clase Cuadro
Atributos
Visibilidad Tipo Identificador Observaciones
private int color almacena un color en forma numérica
private boolean destruir determina si el cuadro debe eliminarse
Métodos
Clase Figura
Atributos
Visibilidad Tipo Identificador Observaciones
private int forma almacena una figura en forma numérica
private int color almacena un color en forma numérica
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
Métodos
Clase StakkaPanel
Atributos
Visibilidad Tipo Identificador Observaciones
private Jpanel juego representa el panel del juego
private Font font tipo de fuente a utilizar en los títulos
private Font font2 tipo de fuente a utilizar en los subtítulos
private Jlabel fin contiene el mensaje de victoria o derrota
private Cuadro[][] tablero contiene las imágenes de los cuadros
private Figura[] figuras contiene las imágenes de las figuras
private JLabel puntos almacena el puntaje alcanzado
private Timer time objeto que representa al tiempo
public
final int ANCHO representa el ancho del panel
public
final int ALTO representa el alto del panel
private int cant_Colores cantidad de colores con que se jugará
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
tiempo de espera, cantidad de
public StakkaPanel() colores y cantidad de filas iniciales constructor de la clase
private void iniciar() inicializa el tablero del juego
agrega los componentes al
private void agregar() panel
revisa si ya no hay cuadros o
private void terminar() si estos llegaron al fondo
encaja una pieza con otras
private void encajar() según sea su forma
determina que cuadros se
private void marcar() fila y columna eliminarán
elimina los cuadros
private void destruir() marcados
bota los cuadros que no
estén sujetos a otras o al
private void botar() tope
determina que cuadros no se
private void desmarcar() fila y columna eliminarán
Clase StakkaControlPanel
Atributos
Visibilidad Tipo Identificador Observaciones
private Font font tipo de fuente a utilizar en los títulos
private Jpanel game representa el panel del juego
private Jlabel titulo contiene el mensaje del titulo
private StakkaPanel juego representa a un objeto del tablero
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
tiempo de espera, cantidad de colores y constructor
public StakkaControlPanel() cantidad de filas iniciales de la clase
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
Clase Driver_Stakka
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
tiempo de espera, cantidad de colores y crea la ventana del
public void juegoPane() cantidad de filas iniciales juego
Clase InicioControlPanel
Atributos
Visibilidad Tipo Identificador Observaciones
private Font font tipo de fuente a utilizar en los títulos
tipo de fuente a utilizar en los
private Font font2 subtítulos
private Jpanel inicio panel de la ventana principal
private Jlabel titulo contiene el mensaje del título
private Jbutton facilB botón para comenzar el juego en fácil
botón para comenzar el juego en
private Jbutton medioB medio
private Jbutton dificilB botón para comenzar el juego en difícil
private Jbutton instB botón para desplegar las instrucciones
private Jbutton salirB botón para cerrar ventana
private String msg contiene las instrucciones
Métodos
Visibilidad Tipo de retorno Identificador Parámetros Funcionalidad
constructor de la
public inicioControlPanel() clase
Clase Driver_Inicio
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
public método principal, crea la ventana
static void main String[][] args principal
Clases internas
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132
FigurasMouseListener
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
MouseEvent mueve la pieza según la posición del
public void mouseEntered() event mouse
MouseEvent
public void mouseCicked() event coloca la pieza en el área de disparo
DisparadorMouseListener
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
MouseEvent
public void mouseEntered() event mueve la pieza según la posición del mouse
MouseEvent coloca la pieza en el tablero, la encaja y destruye
public void mouseCicked() event los cuadros necesarios
JugarListener
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
ActionEvent se encarga de verificar qué botón se apretó y
public void actionPerformed() event realizar su respectiva tarea