Você está na página 1de 10

Universidad del Valle de Guatemala

Programación Orientada a Objetos


Proyecto No.1
Grupo H
Joseph Christopher Luttmann – 10048
Sandra Paola García – 10205
Luis Antonio Sigüenza – 10297

ANALISIS DEL PROBLEMA

A. Entadas (Datos que el usuario ingresara):

 Opción que el usuario desee seleccionar del siguiente menú


(1-4):
1. Instrucciones
2. Jugar
 Nombre del jugador.
 Coordenadas donde se encuentre el objeto que
el usuario desee mover.
 Coordenadas de la posición donde desee realizar
el movimiento.
 Si desea o no seguir jugando el usuario (después
de cada 3 movimientos realizados).
3. Registro de puntajes
4. Salir del Juego
B. Salidas (Mensajes que se van a mostrar en pantalla):

 Dentro del menú del juego, según la opción que el usuario


ingrese, se desplegara lo siguiente:

1. Instrucciones
Se mostrará una breve descripción de en qué consiste
el juego (movimientos, puntajes, etc.) , con el fin que
el jugador entienda perfectamente el juego.

2. Jugar
Al momento que el usuario empiece a jugar se
mostrara en pantalla:

 Una matriz que contenga cada uno de los


objetos del juego. Cada vez que el jugador
ingrese las coordenadas del objeto que desea
mover y hacia donde, la matriz se modificará y
por lo tanto se mostrará la matriz modificada.

 El puntaje acumulado que el jugador haya


alcanzado.

 El nivel en el que el jugador se encuentra. Así


mismo, los puntos necesarios que debe
alcanzar para poder pasar de nivel.

 Si ha logrado completar todos los niveles, se


mostrará en pantalla una notificación que ha
ganado el juego.

3. Registro de Punteos
Se mostraran en pantalla el registro de los 20 últimos
usuarios que hayan jugado el mismo, es decir, el
nombre y punteo que haya obtenido cada jugador
dentro del mismo. Con la condición de que solo se
mostraran aquellos usuarios que hayan jugado sin
haber salido del juego, ya que es un juego de
competencia.

4. Salida del Programa


Al momento que el usuario seleccione la opción de
salida del programa se mostrará en pantalla un
mensaje de despedida y se saldrá del juego.

5. Notificaciones (Programación defensiva)


Estas notificaciones más que todo son mensajes de
algún error que el usuario haya cometido. Serán
mostradas en pantalla si el usuario, realiza lo siguiente:

 Ingresa una opción que no existe dentro del


menú.
 Las coordenadas de un objeto o el
movimiento del mismo son incorrectas, ya
sea porque no son números enteros o las
coordenadas no existen, es decir ingresa
letras en vez de números..

C. Condiciones (Restricciones que tiene el problema):

 En el menú, solamente puede seleccionar entre las 4 opciones


que posee el menú. Así mismo la opción ingresada tiene que
ser un numero entero (1-4).
 Las coordenadas que el usuario ingrese deben de estar en el
rango del tablero (12*12).
 Los movimientos de las letras únicamente pueden ser verticales
y horizontales. Así mismo se pueden movilizar un espacio desde
la posición donde se encuentren. De lo contrario no se
realizara ningún movimiento.
 El usuario seguirá su juego si así lo desea, ya que cada 3
movimientos se preguntará al mismo si desea continuar
jugando.
 Se registran los punteos, únicamente de los jugadores que
hayan participado sin haber cerrado el juego.
 El usuario iniciara el juego con un puntaje de cero.
 Se verificará la matriz después de cada movimiento realizado
por el jugador, con el fin de verificar si el usuario ha ganado el
juego.
 El usuario tendrá la posibilidad de subir de nivel si logra llegar a
un punteo específico. Así mismo, ganará el juego únicamente
si logra pasar todos los niveles que existen.
 El usuario terminará el juego hasta que él lo indique en el
momento que el juego se lo pida o el seleccione la opción de
salida.

D. Descripción de Ciclos:

 Menú principal del programa.


 Se repetirá el despliegue del menú con sus distintas
opciones. Así mismo se repetirá el ingreso de la opción
por el usuario.
 Mientas que el usuario no ingrese la opción de salida (4)
las opciones del menú estarán habilitadas y se realizará
en cada una de ellas sus funciones especificas.
 Solicitud de coordenadas.
 Ya iniciado el juego, se solicitaran las coordenadas de
cada movimiento con respecto al objeto que se desea
mover y la posición a la que se desea mover.
 Las coordenadas ingresadas por el usuario (filas y
columnas) deberán de ser números enteros de 1-12, de
lo contrario se repetirá el ingreso de la misma. Así mismo,
mientras el usuario desee continuar con el juego o no
haya alcanzado los 250 pts. para ganar el juego, se
seguirán solicitando las coordenadas, es decir, el juego
seguirá ejecutándose hasta que cumpla cualquiera de
las dos condiciones.
 Verificación del tablero de juego.
 Ya iniciado el juego, se llamará a un método que
verificara cada movimiento realizado por el jugador, el
cual se basa en recorrer toda la matriz para verificar que
existan tres o más letras iguales, para poder sumar los
puntos al jugador.
 Mientras que encuentre tres o más letras iguales, sumará
el punteo respectivo de lo contrario no realizará ningún
tipo de acción. Este ciclo se realizará tanto para verificar
movimientos horizontales como verticales.

E. Programa principal – método main:


 Descripción del curso lógico (Algoritmo Narrativo)
1. Se importa de la biblioteca de JAVA el paquete Scanner.
2. Se declara la clase DriverFigura.
3. Se inicia la ejecución del programa
a. Se declara el método estático main.
b. Se declaran las variables y objetos que van a ser
utilizados.
c. A través de un ciclo se mostrará el menú de opciones
(se llama al método menú()).
 Se pedirá al usuario ingresar la opción que
desee.
1. Si la opción es Instrucciones:
o Se mostrará en pantalla el método
instrucciones().
2. Si la opción es Jugar.
o Se mostrará en pantalla el tablero
de juego.
o Se verificará 5 veces la matriz, con
el fin de identificar caracteres
iguales.
o Se mostrará en pantalla el nivel en
que el jugador se encuentra y los
puntos que debe alcanzar para
pasar del mismo.
o Se pedirá al usuario que ingrese su
nombre para el registro.
o Se pedirá al usuario el ingreso de la
fila y columna de la letra que
desea mover. Las cuales deben ser
números enteros de 1-12.
o Se pedirá al usuario el ingreso de la
fila y columna de la letra por la
que desea hacer el cambio. Las
cuales deben ser números enteros
de 1-12.
o Se realizará el movimiento a través
del método moverLetra().
o Se mostrará en pantalla la matriz
modificada.
o Después de cada 3 movimientos
realizados por el usuario, se
preguntará al mismo si desea
continuar con el juego.
 Mientras que el usuario no
ingrese terminar juego, se
seguirá ejecutando el juego.
o Después de cada movimiento se
verificara si el jugador a lo grado
alcanzar los puntajes de cada nivel
o bien si ha logrado ganar el
juego. Si esto se cumple se
terminará la ejecución del juego y
se mostrará el menú nuevamente.
3. Si la opción es Registro de punteos.
o Se mostrará en pantalla los
nombres y resultados obtenidos de
todos los usuarios, que hayan
jugado. Con la condición de que
solo se mostraran aquellos datos
de los usuarios que haya jugado sin
haber cerrado el juego.
4. Si la opción es Salir del Juego
o Se mostrará en pantalla un
mensaje de despedida.
 Mientras que el usuario no ingrese la opción de
salida el menú se seguirá mostrando el mismo.
4. Se declara el método estático menu().
5. Se declara el método estático instrucciones().
6. Se declara el método estatico obtenerNumero().
7. FIN.

F. Descripción de cada clase:

 Clase : Figura

Tabla 1: Atributos de la clase Figura.

Visibilidad Tipo Identificador Observaciones

privado Char letras Se caracteriza por


ser un arreglo de
dos dimensiones.

privado int puntos Puntos obtenidos


por el usuario.

Tabla 2: Métodos de la clase Figura.

Visibilidad Tipo de Retorno Identificador Parámetros Funcionalidad

publico - Figura - Constructor pre-


definido.
Inicializa el
objeto,

publico - Figura (int filas, int Constructor


columnas, int personalizado.
puntos) Inicializa el
objeto.
OVERLOADING

publico String toString - Devolver el


estado del
objeto.

publico void moverLetra (int filap, int Mover la letra


columnap, int desde una
filam, int coordenada a
columnam) otra.

publico void revisarMatriz (Boolean Verificar en la


acumular) matriz si existen
3 o más
caracteres
iguales de
forma horizontal
o vertical y dar
los puntos
debidos al
jugador.

privado char seleccionarVocal - Seleccionar una


vocal en un
rango
específico.

public int getPuntos Devolver el


estado en el
que se
encuentra el
atributo puntos.

 Clase : Usuario

Tabla 3: Atributos de la clase Usuario.

Visibilidad Tipo Identificador Observaciones

privado String nombre Nombre del


jugador.

privado int punteo Punteo obtenido


por el jugador.

Tabla 4: Métodos de la clase Usuario.

Visibilidad Tipo de Retorno Identificador Parámetros Funcionalidad

publico - Usuario - Constructor pre-


definido.
Inicializa el
objeto,
publico - Usuario (String, Constructor
nombre, int personalizado.
punteo) Inicializa el
objeto.
OVERLOADING

publico void setNombre (String nombre) Modifica el


valor del
atributo
nombre, que
viene como
parámetro.

publico void setPunteo (int punteo) Modifica el valor


del atributo
punteo, que
viene como
parámetro.

publico String getNombre - Obtiene el valor


del atributo
nombre.

publico int getPunteo - Obtiene el valor


del atributo
punteo.

publico String toString - Devuelve el


estado del
objeto.

 Clase : DriverFigura

Tabla 5: Métodos de la clase Figura.

Visibilidad Tipo de Retorno Identificador Parámetros Funcionalidad

publico void main (String args[ ]) Iniciar la


ejecución del
programa.

publico void menu - Mostrar el menú


de opciones al
usuario.

publico void instrucciones - Mostrar las


instrucciones
del juego al
usuario.

publico int obtenerNumero (String mensaje, Pedir coordenadas


boolean y verificar que sean
mostrar) números enteros.

Você também pode gostar