You are on page 1of 10

ANÁLISIS DEL PROBLEMA

ENTRADAS DEL PROGRAMA (¿QUÉ DATOS VA A INGRESAR EL USUARIO?)

 Cuando el usuario este jugando una partida, ingresará la posición horizontal de las
esferas en el tablero de juego por medio del teclado (← →).
 Cuando el usuario este jugando una partida, tendrá la posibilidad de pausar el juego
por medio del teclado (bloq mayús).
 El usuario podrá minimizar, maximizar o cerrar las ventanas que contengan las
instrucciones del juego, menú principal del juego, tablero del juego y sub menú de
opciones.
 El usuario generará un evento al presionar las flechas de dirección de su teclado,
cuando desee cambiar la posición horizontal de las esferas.
 El usuario generará un evento al presionar la tecla bloq mayús de su teclado, cuando
desee pausar el juego.

SALIDAS DEL PROGRAMA (¿QUÉ MENSAJES SE VAN A MOSTRAR EN


PANTALLA?)

 Dentro del tablero de juego, el usuario podrá visualizar el punteo acumulado


durante el juego, el número de nivel en dónde se encuentra el juego y el tipo de
esferas que generará el juego para el siguiente movimiento.
 Al pasar de nivel durante el juego, se desplegará en pantalla un aviso emergente,
indicando al usuario que ha subido de nivel; de la misma forma se agregará con
cada nivel una fila completa de esferas de distintos colores, elegidas aleatoriamente,
en la parte inferior del área de juego.
 Durante la duración del juego, se generarán aleatoriamente un conjunto de esferas,
formado por tres de éstas, las cuales serán de distintos colores. El usuario podrá
modificar, su posición horizontal en el área de juego mediante las flechas de
dirección de su teclado.
 Al realizar una jugada correcta con los conjuntos de esferas, se eliminaran las
esferas que sean del mismo color y que se encuentren en un patrón correcto del
juego.

CONDICIONES DEL PROGRAMA


 El juego finalizará únicamente cuando el usuario lo desee o bien, lo indique.
 El juego tendrá únicamente 10 niveles que podrá ganar el usuario.
 El juego podrá ser jugado únicamente por un usuario a la vez, del mismo modo no
existirá un modo de juego “Máquina-Humano”.
 El usuario podrá mover el conjunto de esferas únicamente de izquierda a derecha, es
decir, de forma horizontal.
 Los movimientos que se realicen de forma horizontal, solo podrán realizarse dentro
de las dimensiones del área de juego.
 El usuario no podrá mover el conjunto de esferas de forma vertical, es decir de
arriba hacia abajo o viceversa.
 El usuario cambiará de nivel, únicamente al alcanzar el puntaje establecido para
cada nivel del juego.
 El usuario ganará el juego cuando llegue al último nivel y obtenga el puntaje
máximo del juego.
 El usuario perderá el juego cuando el área de juego, se encuentre totalmente llena
de esferas, lo que provoca que no se puedan generar aleatoriamente más conjuntos
de esferas.
 Al reiniciar el juego, se restablecerán los valores iniciales del tablero de juego.

DESCRIPCIÓN DE CICLOS

- MOSTRAR EN PANTALLA EL TABLERO DE JUEGO


o ¿QUÉ SE REPITE? El tablero de juego, formado por el nivel, puntaje
y el área de juego.
o ¿QUÉ CONDICIÓN CONTROLA LA REPETICIÓN? Se
repetirá hasta que el usuario finalice el juego.
- CREACIÓN DE OBJETOS ESFERA DENTRO DEL ÁREA DE
JUEGO
o ¿QUÉ SE REPITE? La creación de objetos esfera tanto dentro de la
matriz interna del juego como en el área de juego.
o ¿QUÉ CONTROLORÁ LA REPETICIÓN? Las dimensiones de
la matriz interna del juego y el estado del juego.
- DIBUJAR LAS IMÁGENES DE LAS ESFERAS DENTRO DEL
ÁREA DE JUEGO
o ¿QUÉ SE REPITE? El conjunto de tres esferas de distintos colores que
representarán las jugadas posibles que podrá realizar el usuario.
o ¿QUÉ CONDICIÓN CONTROLARÁ LA REPETICIÓN?
Las dimensiones de la matriz interna del juego y el estado del juego.
- BUSCAR PATRONES DE ESFERAS CON COLORES
IDENTICOS DENTRO DEL ÁREA DE JUEGO Y LA MATRIZ
INTERNA DEL JUEGO
o ¿QUÉ SE REPITE? La búsqueda de esferas con colores iguales a la
seleccionada por el usuario en la jugada realizada.
o ¿QUÉ CONDICIÓN CONTROLARÁ LA REPETICIÓN?
Las dimensiones de la matriz interna del juego y la posición de la esfera
dentro del área de juego.
- ELIMINACIÓN DE ESFERAS CON COLORES IDÉNTICOS EN
JUGADAS REALIZADAS POR EL USUARIO
o ¿QUÉ SE REPITE? La eliminación de las esferas con colores iguales
dentro del área de juego cuando el usuario realice jugadas correctas.
o ¿QUÉ CONDICIÓN CONTROLARÁ LA REPETICIÓN? La
cantidad de esferas con colores iguales.
- VERIFICAR EL ESTADO DEL JUEGO
o ¿QUÉ SE REPITE? La verificación del estado de la matriz interna del
juego y el área de juego.
o ¿QUÉ CONDICIÓN CONTROLARÁ LA REPETICIÓN?
Las dimensiones de la matriz interna del juego.

PROGRAMA PRINCIPAL (MÉTODO MAIN)


- Inicio de juego.
- Se muestra en pantalla la ventana principal (tablero de juego).
- Mientras se muestra en pantalla el tablero de juego:
o Se muestra al lado izquierdo del mismo, tanto el puntaje acumulado, nivel
que se está jugando y el conjunto de esferas del siguiente movimiento.
o Se generan automáticamente y aleatoriamente un conjunto de esferas, el
cual, cae lentamente dentro del área de juego.
o Mientras desciendan conjuntos de esferas dentro del área de juego:
 El usuario podrá modificar la posición horizontal de dicho conjunto
mediante las flechas de dirección de su teclado.
 El usuario podrá colocar el conjunto de esferas en cualquier posición
que se encuentre dentro de las dimensiones del área de juego;
asimismo el usuario podrá colocar el conjunto de esferas sobre o a un
lado de otros conjuntos de esferas ya colocados dentro del área de
juego.
 El usuario tendrá la opción de pausar el juego, esto con el fin de
beneficiar al usuario por cualquier suceso que le impida seguir con el
juego. Esto a través de presionar la tecla bloq mayús.
o Mientras el usuario realice combinaciones correctas con los colores de los
conjuntos de esferas generados:
 Se eliminarán del área de juego los conjuntos de cuatro o más
esferas del mismo color.
 Se incrementará el puntaje del juego; dicha cantidad dependerá de la
jugada realizada por el usuario.
 Si el usuario llega al puntaje máximo de cada nivel:
 Se le notificará al usuario el cambio de nivel.
 Se cambiará el nivel y se aumentará la dificultad del juego.
 Si el usuario llega al puntaje máximo del último nivel
definido para el juego:
o Se muestra en pantalla un mensaje de felicitación y
emerge un sub menú de opciones, en donde el usuario
podrá reiniciar el juego o retornar al menú principal
del juego.
o Mientras el usuario no realice combinaciones correctas con los colores de
los conjuntos de esferas generados:
 Se acumularán conjuntos de esferas dentro del área de juego.
 Si el área de juego se llena de esferas:
 Se muestra en pantalla un mensaje que le indica al usuario
que ha perdido el juego y emerge un sub menú de opciones,
en donde el usuario podrá reiniciar el juego o retornar al
menú principal del juego.
o Si el usuario desea finalizar el juego:
 La aplicación finaliza y se cierran todas las ventanas del juego.
CLASE: Tablero

ATRIBUTOS DE LA CLASE
OBSERVACIONE
VISIBILIDAD TIPO IDENTIFICADOR
S
Coordenadas en la
coordenadaX
Private Int [ ] matriz de todas las
coordenada Y
esferas.
Coordenadas
aleatorioEsferasX iníciales de las
Private Int [ ]
aleatorioEsferasY esferas creadas
aleatoriamente.
Matriz que
contendrá a las
Private Esfera [ ] [ ] matrizEsferas
esferas dentro del
juego.
Colores del conjunto
private JLabel [ ] colorEsferas
de esferas
Conjunto de 3
private Esfera conjuntoEsferas
esferas.
Timer que controla
Private Timer Control_esferas la animación de las
esferas.
Verifica si ya se ha
private boolean estaColocada colocado cada
esfera.
Panel del tablero de
private JPanel Tablero
juego.
private int anchoEsfera Ancho y alto de
cada esfera.
altoEsfera Velocidad a la que
velocidad descenderán las
esferas.
Imagen de la esfera
private ImageIcon imagen
de referencia.
Private Image imagenFondo Imagen de fondo.

MÉTODOS DE LA CLASE
VISIBILID PARÁMETR FUNCIONALID
T/R IDENTIFICADOR
AD OS AD
No recibe Inicializa el estado
Public - Tablero ningún del tablero de
parámetro. juego.
No recibe Ver bibliografía.
private void initComponents ningún
parámetro.
Dibuja la imagen
No recibe
de fondo del
private void preInit ningún
juego.
parámetro.
Generar un
No recibe
conjunto de tres
public void generarEsferas ningún
esferas con su
parámetro.
respectiva imagen.
Coloca la imagen
en la matriz
Int num1,
public void colocarEsferas interna del juego y
int num2
en el tablero de
juego.
Convertir la
posición x del
tablero de juego
public void convertirPosición1 Int num
de la esfera 1 en la
posición de la
matriz interna.
Convertir la
posición x del
tablero de juego
public void convertirPosición2 Int num
de la esfera 2 en la
posición de la
matriz interna.
public void convertirPosición3 Int num Convertir la
posición x del
tablero de juego
de la esfera 3 en la
posición de la
matriz interna.
Obtener la
public int posicionEsfera1 Int num1 posición en el eje
“y” de la esfera 2.
Obtener la
posición en el eje
Public int posicionEsfera2 Int num2
“y” de las esferas
1 y 3.
Dibuja las esferas
en sus
public void paintComponent Graphics g
coordenadas (x,y)
respectivas.
Movimiento
horizontal del
KeyEvent conjunto de
Public void KeyPressed
event esferas hacia la
izquierda o
derecha.
KeyEvent Ver bibliografía.
public void keyReleased
event
public void KeyEvent e Ver bibliografía.

CLASE INTERNA DEL PROGRAMA: EsferasTimerListener

MÉTODOS DE LA CLASE INTERNA


VISIBILIDAD T/R IDENTIFICADOR PARÁMETROS
Public void actionPerformed ActionEvent event

CLASE: Esfera

ATRIBUTOS DE LA CLASE
OBSERVACIONE
VISIBILIDAD TIPO IDENTIFICADOR
S
Private Int numEsfera Color de cada esfera
según sea el numero
que identifica la
misma.
Coordenada “x”
Private Int coordenadaX donde se encuentra
la imagen.
Coordenada “y”
private int coordenadaY donde se encuentra
la imagen.
Imagen de cada
Private ImageIcon esfera
esfera.
Verificar si la
Private Boolean estaColocada imagen ya ha sido
colocada o no.

MÉTODOS DE LA CLASE
VISIBILIDA IDENTIFICADO FUNCIONALIDA
T/R PARÁMETROS
D R D

No recibe ningún Inicializa el estado


Public - Esfera
parámetro. de la esfera.

int numEsfera, int Inicializa el estado


Public - Esfera pos_x, int pos_y, de objetos
boolean valor personalizados.

Modifica el estado
Public void setColocada Boolean valor del atributo
estacolocada

Modifica el estado
public void setX Int valor de la coordenada
del eje x.

Modifica el estado
Public Void setY Int valor de la coordenada
del eje y.
Modifica el estado
public void setNumEsfera Int valor del atributo
numEsfera.

Devuelve el estado
Public void getColocada - del atributo
estacolocada

Devuelve la imagen
public void getImage -
de cada esfera.

Devuelve el estado
public void getX - de la coordenada
del eje x.

Devuelve el estado
Public Void getY - de la coordenada
del eje y.

Devuelve el estado
public void getNumEsfera - del atributo
numEsfera.

CLASE: DriverEsfera

MÉTODOS DE LA CLASE
VISIBILIDA IDENTIFICADO FUNCIONALIDA
T/R PARÁMETROS
D R D

Crear la ventana del


Public static main String[] args.
juego.

You might also like