Professional Documents
Culture Documents
2
Christopher Luttmann
Juan Carlos Rosito
Diego Castillo
ANALISIS PPROYECTO 2
PUMPKINS
a. Entradas:
El usuario hará clic sobre un botón, dicho clic será una entrada.
El usuario unidamente hará clic en la fila en que desee colocar las
calabazas correspondientes o la opción cualquiera se le solicite.
b. Salidas:
En pantalla se mostrara:
Diferentes Frames con lo siguiente:
Un menú de opciones.
Uno de instrucciones.
Uno en el cual está contenido el juego.
Mensajes de aviso:
Cambio de nivel.
Si el usuario a perdido el juego.
El nivel de juego.
Las figuras de la siguiente jugada.
La matriz de Labels que contendrá dentro un tipo de calabaza o un
espacio vacío dependiendo del caso.
c. Condiciones:
* Con un Click se deben agregar dos calabazas a la matriz en la fila
donde el usuario seleccione colocar las dos calabazas nuevas.
* La selección de calabazas nuevas a la matriz deben ser aleatorias.
* Se iniciara con 4 tipos distintos de calabaza
* Cada aumento de nivel significa un tipo de calabaza nueva y mayor
puntaje el que debe de realizar el usuario.
* Deben de encontrarse por lo menos 3 calabazas del mismo tipo juntas
ya sea vertical, horizontal o en forma de L para eliminarlas y darle puntos al usuario.
* Si aparece un hueso entre las calabazas esta debe eliminar toda la
fila donde es colocado.
* La matriz debe de iniciar con las 2 columnas centrales llenas de
calabazas seleccionadas al azar sin que hayan 3 o más del mismo tipo juntas.
* Si se llena una fila de calabazas automáticamente el jugador pierde el
juego.
* Si el jugador cuando pierde posee más puntos que el puntaje máximo
anterior este puntaje es almacenado como el puntaje máximo.
* Si se selecciona el botón de jugar se iniciara un Frame nuevo con las
herramientas del juego, y si se selecciona el botón de instrucciones se mostraran las
normas del juego en un Frame nuevo.
Programa Principal:
La ejecución del programa inicia mostrando un Frame que sería el menú del
juego. En este menú se encontraran dos botones y una imagen. Los dos botones que
estarán presentes será uno llamado "Instrucciones" y "Iniciar". Si se da clic en el botón
instrucciones, se desplegara un nuevo Frame o una nueva ventana en la cual se
mostrara una imagen con las instrucciones del juego.
El juego está constituido por la lógica y sus elementos gráficos. La lógica será
realizada por una clase aparte llamada matriz, la cual al momento de que se dé un evento
en el aspecto gráfico esto utilizara métodos de dicha clase aparte, para definir qué
sucederá a determinada acción. Esta relación gráfico-lógico será la base fundamental
del programa del juego.
De cada una de las tres ventanas es posible salir únicamente cerrando la ventana
que se desee y si se cierra la ventana terminara la ejecución.
Clase: Proyecto2
Proyecto2 es la clase que contiene el método main y es el que inicia la ejecución del
programa. En el solo se declaran propiedades básicas de un frame y se la añade un
objeto del tipo MenuOpciones para que muestre en pantalla el panel de este objeto.
Atributos:
Visibilidad Tipo Identificador Observación
Private JPanel panelX
Private JPanel panelY
Private JPanel panelZ
Private JButton jugar
Private JButton instrucciones
Private JLabel Imax
Private JLabel C
Private JLabel b
Métodos:
Visibilidad Tipo de retorno Identificador Parámetros Funcionalidad
public ---- MenuOpciones ---- Inicializa los
componentes
como paneles,
botones y Labels
y si es necesario
les anida un
evento.
Clase: Instrucciones
Atributos:
Visibilidad Tipo Identificador Observación
Private JPanel panelin
Private JLabel instru
Métodos:
Visibilidad Tipo de retorno Identificador Parámetros Funcionalidad
Public ---- Instrucciones ----- Inicializa el
estado del objeto
mostrando las
instrucciones del
juego en un Label
Clase: Calabazas
Atributos
Métodos
Métodos:
revisarMatriz(){
int fil = 0
int col = 0
mientras(matrix.length>fil){
mientras(matrix[fil].length>col){
cont = 1
si ( matrix[fil][col] == matrix[fil+1][col] || matrix[fil][col] == matrix en posiciones
horizontales o verticales ) //revisión en cruz
cont++
}
Si (cont >= 3){
cont = 1
Cambiar el tipo de numero que se encuentra en matrix[fil][col]por 0
Si (matrix[fil][col] == matrix [fil+cont][col])
Cambiar el tipo de numero que se encuentra en
matrix[fila+cont][columna] por 0
Hacer la misma operación para todos los casos…
}
}
}
}
rellenarMatriz(){
Random seleccion
seleccionar al azar un numero de cont_calabazas[]
devolver selección.
}
verificarPerder(){
perder = false
si moverCalabaza == matriz.length || moverCalabaza == 0
perder = true;
devolver perder;
}
agregarPuntos(){
puntos += (revisarMatriz()*10)
}
getPuntos(){
devolver puntos
}
verificarNivel(int x){
si (getPunots >= x)
cambiar de nivel
agregar nuevo elemento al array de cont_calabaza
}
moverCalabaza(int fil){
cont = 0
mientras(cont<matrix[0].length/2){
mientras (matrix[fil][cont] ==0)
cont++
if(matrix[fil][cont] ¡= 0)
matrix[fil][cont] = rellenarMatriz()
devolver cont
}