Está en la página 1de 10

UNIVERSIDAD DEL VALLE DE GUATEMALA

Facultad de Ingeniería

Análisis del proyecto No. 2,


Programación orientada a objetos

Claudia María Grajeda Díaz 10118


Sandra Paola García Sandoval 10205
Raúl Rivera 10099

Guatemala,
30 de septiembre de 2010
CLASE PRINCIPAL

ENTRADAS:
 El nombre del usuario para los punteos, el uso del mouse. El motion para que los botones sepan si el mouse se encuentra sobre uno de
ellos
 listeners para cuando el usuario presioné un botón, se pueda ejecutar la acción.

SALIDAS:
 Pantalla inicial (menú: jugar, ver instrucciones, punteos).
 Al presionar jugar salen 3 nuevos botones, los cuales muestran los diferentes niveles que se encuentran en el juego.
 También, se muestra la matriz con las calabazas, las siguientes calabazas, el punteo, tiempo que indica los segundos restantes para que
 se aumenten automáticamente las calabazas.
 Se observa el botón de sonido, si este es presionado, la música se pausará, si es presionado de vuelta, la música empieza de nuevo.
 Al perder muestra un nuevo menú de opciones las cuales son: ver puntaje, jugar de nuevo.

CONDICIONES:
 Las calabazas salen en la última columna de la fila donde está el mouse,
 Se eliminan las calabazas que formen una línea de 3 calabazas iguales como mínimo o una "L" parada o acostada.
 Al empezar el juego salen las 2 columnas del centro llenas con calabazas.
 El jugador pierde si las calabazas llegan a la última columna de cualquiera de los lados.
 La imagen del hueso elimina la fila entera pero si se coloca en la última columna pierde.
 La imagen de la calavera elimina todas las imágenes de las calabazas que tengan el mismo color a la que toque, quede a la par.
 Al aumentar de nivel el tamaño de la matriz disminuye.
 Al terminar el tiempo al siguiente tiempo, al siguiente tiro se muestran más calabazas en pantalla.
 Al presionar el botón de volumen, el sonido se pausa y si se vuelve a presionar este empieza de nuevo.
 Al presionar puntaje, solicita el nombre del jugador y después de presionar enter aparece la lista de punteos.
 Primero verifica los extremos de la matriz y luego elimina, es decir, si junta 3 en un extremo, este igual pierde.
 El usuario nunca puede topar uno de los extremos con calabazas.
REPETICIONES:
 El conteo del tiempo, al llegar a cero, nuevamente empieza a contar
 El random para que salgan las calabazas.
 Cuando el tiempo termina, salen nuevas calabazas
 El juego se repite mientras el usuario cambie de nivel.
 Verificar después de cada movimiento si hay calabazas en la primera y última columna. (if para cada columna)
 Verificar que hayan 3 o más juntas. (for para recorrer los botones, una para fila, otra para las columnas)
 Las instrucciones se muestran en pantalla, mientras el usuario presioné instrucciones.

----------------------------------------------------------------------------------------------------------------------------

Clase tablero: clase principal

Método:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publicó void main String[]args Muestra el menú principal, el cual muestra las opciones de
jugar, ver instrucciones y ver puntajes altos.
Al jugar, muestra la ventana principal, en la cual se observan
las calabazas en el centro y aparece una calabaza en el lado
derecho y una en el izquierdo, alineadas en la posición que se
encuentre el mouse. Al ver instrucciones, muestra el párrafo
con las instrucciones del juego. Y en puntajes altos muestra una
lista con los puntajes guardados durante la jugada.
--------------------------------------------------------------------------------------------------------------------------------------------

Clase StartPanel hereda de JPanel

Atributos de la clase:

VISIBILIDAD TIPO INDENTIFICADOR OBSERVACIONES


privado JLabel matrizbo Es la matriz de Labels, en donde aparecerán las calabazas al azar.
privado ImageIcon image Es la imagen que se colocará aleatoriamente para llenar las primeras 2 columnas.
privado ImageIcon a Esta es una imagen aleatoria que será la primera de las siguientes.
privado ImageIcon c Esta es una imagen aleatoria que será la segunda de las siguientes.
privado Boolean ocupado Muestra si la casilla está ocupada o no.

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico No tiene StartPanel No tiene constructor, da características iniciales a la clase
Publico No tiene StartPanel Int fila, Constructor personalizo. Es para asignar nuevas características
Int columna a la matriz de lables
Int alto
Int ancho
Publico ImageIcon Siguiente No tiene Elige una imagen aleatoriamente, la cual es la siguiente
calabaza que aparecerá en el juego.
Publico Void Removertodo No tiene Este se encarga de remover todo lo que posee la matriz de
etiquetas.
Publico Void casillaLena No tiene Este muestra si la casilla se encuentra ocupada por una
calabaza o si se encuentra vacía.
Publico Void Extremos Int fila, Este método coloca las 2 calabazas aleatorias en los extremos
Int nivel de la matriz.
Publico Void Mover Int fila, Este método mueve las calabazas desde los extremos hacia el
Int nivel centro y las coloca a la par de otras calabazas hasta llenar toda
la matriz
Publico Void Perdido No tiene Este método crea un JFrame cuando se termino el juego y
despliega un mensaje en una ventana nueva.
Publico Void Termino Int nivel Este método revisa de que cuando si se llena la matriz y llega a
las orillas automáticamente se termina el juego y muestra un
mensaje de salida.
Publico Void Revisar Int nivel Este método revisa las calabazas entre sí para ver si son iguales
o no si y si son iguales las elimina y coloca otras en ese lugar.

-----------------------------------------------------------------------------------------------------------------------------------------------

Clase TableroPanel hereda de JPanel

Atributos de la clase:

VISIBILIDAD TIPO INDENTIFICADOR OBSERVACIONES


privado constante ANCHO es el ancho del panel
privado constante ALTO es el alto del panel
privado JButton start Es el botón de Start
privado JButton instrucciones es el botón de instrucciones
privado JButton punteo es el botón de punteo
privado JButton facil es el botón para el nivel fácil
privado JButton medio es el botón para el nivel medio
privado JButton dificil es el botón para el nivel difícil
privado JButton escuchar Es el botón para la música.
privado ImageIcon image Es la imagen que se pondrá en la pantalla principal
Privado JLabel label1 Es la etiqueta con la imagen en la pantalla principal
Privado Jlable[] Siguientes Es el label, donde se pondrán las siguientes calabazas
Privado JPanel Barra Es en donde se coloca el label siguientes, el tiempo restante, el botón
de música y el punteo
Privado Font F Es el formato para los botones
Privado BotonesListener Hacer Es un objeto de la clase BotonesListener, el cual detecta si ha sido
presionado y realiza su acción correspondiente
Privado StartPanel St Es un nuevo start panel, en el cual, se le asignan características
dependiendo del nivel
Privado AudioClip Música Es la música que se pondrá al juego
Privado ImageIcon Image2 Es la imagen para el botón de la música.
Privado Boolean Estado Es quien mira si ha sido o no presionado el botón de música
Privado JLabel Tiempol Es el label que muestra el tiempo restante
Privado Timer Tiempo Es el timer que irá cambiando cada segundo, el tiempo restante
Privado Int G Es para condiciones iniciales del TimerListener g=58
Privado String Sec Es la variable que agarra el valor de g como String y lo pone en el label
del tiempo
Privado Stlistener Hacer2 Es la variable que hace que se implemente el listener del mouse y
hace que funcione el juego.
Privado Int nivel Es la variable que dice que nivel es y eso se usa para poner el tamaño
del juego.
Privado Int fila Esta variable sirve para el listener para que mueva las calabazas de los
extremos cuando se mueve el mouse de arriba para abajo.

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico No tiene TableroPanel No tiene Es el constructor, crea los diferentes botones con sus
respectivas funciones.
Crea el timer y los labels correspondientes.

CLASES INTERNAS DE LA CLASE TABLEROPANEL:

Clase BotonesListener implementa de ActionListener


- No posee atributos

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico Void actionPerformed ActionEventevent Revisa si un botón ha sido presionado, dependiendo del botón
presionado, aplica una acción.

Clase CalabazasTimerListener implementa de ActionListener

- No posee atributos

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico Void actionPerformed ActionEventevent Este se encarga de cambiar cada segundo, el valor de g es
decir, disminuye de 59 hasta 0, para mostrar el tiempo
restante.

Clase Stlistener implementa de MouseListener y MouseMotionListener

- No posee atributos

Métodos:
VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD
publico Void mouseClicked MouseEvent Este se se encarga de ver en que fila fue presionado el mouse y
mueve las calabazas hacia el centro.
Publico Void mouseMoved MouseEvent Este se encarga de ver si se movió el mouse y mover las
calabazas de los extremos hacia arriba o hacia abajo.
Publico Void mouseEntered MouseEvent Este se encarga de ver si se entro en la matriz y pone el fondo
de color naranja.
Publico Void mouseExited MouseEvent Este se encarga de ver si se salió de la matriz y se pone de color
blanco.

-----------------------------------------------------------------------------------------------------------------------------------------------

Clase InstruccionesPanel hereda de JPanel

Atributos de la clase:

VISIBILIDAD TIPO INDENTIFICADOR OBSERVACIONES


privado Int WIDTH Es el ancho predefinido
privado Int HEIGHT Es el alto predefinido
privado JLabel Label1 Es el label, del título del panel de instrucciones
Privado JTextArea Ins Es en donde se encontraran escritas las instrucciones
Font F Es el formato para las palabras

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico No tiene InstruccionesPanel No tiene Constructor, da las condiciones iniciales muestra todas las
instrucciones del juego aplica fondo, tipo de letra y acción al
cerrar.
-----------------------------------------------------------------------------------------------------------------------------------------------
Clase PunteoPanel hereda de JPanel

Atributos de la clase:

VISIBILIDAD TIPO INDENTIFICADO OBSERVACIONES


R
privado Int WIDTH Es el ancho predefinido
privado Int HEIGHT Es el alto predefinido
privado JLabel Labelp Es el label del título del panel de punteo
Privado JTextArea Jugadores Es el área en se guardan los punteos y nombres de los usuarios
Font F Es el formato para las palabras
Privado JTextField Ingreso Es el área en donde el usuario puede ingresar su nombre
Privado Int Puntos Es el punteo que lleva el usuario al ingresar su nombre
Privado FieldListener Hacer Identifica si se ha realizado una acción dentro del JTextField
Privado String Count Es la lista que se va creando mientras el usuario ingresa sus diferentes punteos
Privado FileWriter fichero Este es un objeto que escribe en un archivo externo
privado PrintWriter Pw Esta va imprimiendo el texto que contiene
Privado File Archivo Este es un documento donde están los nombres de los jugadores ya guardados
Privado FileReader Fr Este es el que lee el archivo
Privado BufferedRea br Este lee lo que se encuentra en el archivo y lo lee por lineas
der

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico No tiene PunteoPanel No tiene Constructor, asigna características iniciales crea el nuevo panel,
donde se muestran los punteos ingresados por el usuario
Publico No tiene Actualizar No tiene Este se encarga de ir y leer los nombres de los jugadores que
están ya guardados y colocarlos
CLASES INTERNAS DE LA CLASE PUNTEOPANEL:

Clase FieldListener implementa de ActionListener


- no posee atributos

Métodos:

VISIBILIDAD TIPO DE RETORNO IDENTIFICADOR PARÁMETROS FUNCIONALIDAD


publico void actionPerformed ActionEvent Detecta si ha sucedido una acción en el TextField va guardando
evt los nombres con sus respectivos punteos.

También podría gustarte