Você está na página 1de 13

CC2006 – Programación Orientada a Objetos

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

5. En actionPerformed (ActionEvent event):


 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?:
Mover cuadros de colores una fila hacia abajo
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre columnas tablero:
¿Qué se repite?:
Poner cuadros de tope
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre filas tablero:
¿Qué se repite?:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132

Ciclo recorre columnas tablero


¿Qué condición controla la repetición?:
fil<tablero.length
 Ciclo recorre columnas tablero:
¿Qué se repite?:
Revisar si hay una figura por disparar
¿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:
¿Qué se repite?:
Agregar listener
¿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:
¿Qué se repite?:
Agregar listener
¿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

6. En mouseEntered (MouseEvent event):


 Ciclo recorre columnas tablero:
¿Qué se repite?:
Se busca el cuadro donde entró el mouse
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre pieza:
¿Qué se repite?:
Mover pieza a la izquierda
¿Qué condición controla la repetición?:
Mientras col<2
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132

 Ciclo recorre pieza:


¿Qué se repite?:
Mover pieza a la derecha
¿Qué condición controla la repetición?:
Mientras col>-1

7. mouseClicked (MouseEvent event):


 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?:
Buscar la figura o cuadro "clickeado" y la coloca en el tablero
para ser disparada
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre pieza:
¿Qué se repite?:
Ciclo recorre columnas tablero
¿Qué condición controla la repetición?:
fil<2
 Ciclo recorre pieza:
¿Qué se repite?:
Revisar si el espacio está vacío
¿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?:
fil<tablero.length
 Ciclo recorre columnas tablero:
¿Qué se repite?:
Cambiar listener
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Cambiar listener
¿Qué condición controla la repetición?:
Mientras fil<figuras.length
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132

8. En mouseEntered (MouseEvent event):


 Ciclo recorre columnas tablero:
¿Qué se repite?:
Se busca el cuadro donde entró el mouse
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre pieza:
¿Qué se repite?:
Mover pieza a la izquierda
¿Qué condición controla la repetición?:
Mientras col<2
 Ciclo recorre pieza:
¿Qué se repite?:
Mover pieza a la derecha
¿Qué condición controla la repetición?:
Mientras col>-1

9. En mouseClicked (MouseEvent event):


 Ciclo subir:
¿Qué se repite?:
Ciclo recorre pieza
¿Qué condición controla la repetición?:
Mientras espacios de arriba estén vacios
 Ciclo recorre pieza:
¿Qué se repite?:
Ciclo recorre pieza
¿Qué condición controla la repetición?:
Mientras fil<2
 Ciclo recorre pieza:
¿Qué se repite?:
Se sube la figura una fila
¿Qué condición controla la repetición?:
Mientras col<2
 Ciclo recorre pieza:
¿Qué se repite?:
Ciclo recorre pieza
¿Qué condición controla la repetición?:
Mientras fil<2
 Ciclo recorre pieza:
¿Qué se repite?:
Se borra la pieza
¿Qué condición controla la repetición?:
Mientras col<2
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132

 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?:
Cambiar listener
¿Qué condición controla la repetición?:
Mientras col<tablero[0].length
 Ciclo recorre Ciclo recorre arreglo figuras:
¿Qué se repite?:
Cambiar listener
¿Qué condición controla la repetición?:
Mientras fil<figuras.length

10. En encajar(): No hay ciclos


11. En marcar(int fil, int col): no hay ciclos
12. En destruir():
 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?:
Eliminar cuadro
¿Qué condición controla la repetición?:
Mientras col<tablero[0].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

14. En desmarcar(int fil, int col): No hay ciclos

Clase Figura: No hay ciclos


Clase Cuadro: No hay ciclos

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

Visibilidad Tipo de retorno Identificador Parámetros Funcionalidad


public int getColor() devuelve el color del cuadro
public boolean getDestruir() devuelve si el cuadro debe eliminarse
public void setDestruir() determina si el cuadro debe eliminarse

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

Visibilidad Tipo de retorno Identificador Parámetros Funcionalidad


public Cuadro[][] getPieza() devuelve una matriz representando una pieza
public int getForma() devuelve la forma de la pieza
public int getColor() devuelve el color de la pieza

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á

private int cant_Filas cantidad de filas a llenar al inicio


private int tope representa la fila del tope
private int fila fila en la cual se revisa el fondo
private int posicion columna donde se interactuó
private int forma forma de la figura lanzada
private int color color de la figura lanzada
private int cantidad cantidad de piezas eliminadas
private int pts cantidad de puntos alcanzados
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas – 10411
Diego Rosales - 10132

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

Você também pode gostar