You are on page 1of 15

Universidad de San Carlos de Guatemala

Facultad de Ingeniera
Escuela de Ciencias y Sistemas
Introduccin a la Programacin y Computacin 1
Ing. Neftaly Caldern
Aux. Luis Fernando De Paz Santizo
Aux. Rony de Len

Proyecto 2
Laberinto

Objetivos
General

Aplicar programacin orientada a objetos en el lenguaje de programacin java,


creando una aplicacin grafica utilizando un IDE de programacin.

Introducir al estudiante a manejo de memoria dinmica


Que el estudiante desarrolle habilidad de anlisis para el desarrollo de software de
calidad

Especficos

Crear una aplicacin grafica de forma amigable, sin perder de vista los
requerimientos que el cliente exija

Que el estudiante implemente sus propios algoritmos.


Que el estudiante aplique validaciones en el software para comprender la
importancia de los mismos.

Que el estudiante logre crear y manipular listas dinmicas y que tenga el criterio para
saber en dnde aplicarlas.

Que el estudiante logre la manipulacin de archivos de texto

Descripcin

Consisten en desarrollar un juego de laberinto en donde el objetivo es encontrar la salida,


pero mientras vayamos haciendo el recorrido hacia la salida, la misma aplicacin tratar de
alcanzarnos para que perdamos la partida. Esta entidad ser representada por cualquier
figura o imagen y aparecer en el mapa pocos segundos despus de haberse iniciado el
juego.
El objetivo de esta entidad es que nos perseguir por todo el camino (ms corto) que
vayamos recorriendo en ese instante, para tratar de alcanzarnos y as finalizar y perder el
juego.
Al inicio del juego la aplicacin preguntara al usuario el laberinto o mapa que desea jugar
el cual estar almacenado en un archivo separado por comas (.csv). El mapa o laberinto ser
representado por una matriz de 25 x 25 casillas, cada columna separada por coma y cada
fila ser una lnea.
Ejemplo:
El mapa del laberinto inicial seguir el siguiente formato:

Muro: La palabra muro indicar que existe una pared en esa Posicin.
Inicio: La palabra INICIO indicar la casilla de entrada al laberinto.
Fin: La palabra FIN indicar la casilla de salida del laberinto.
Jugador2: La palabra jugador2 ser utilizada nicamente cuando el juego
sea contra la computadora, de lo contrario el archivo no deber llevar esta palabra

Bonus1 : Da 5 puntos ms al jugador

Bonus2: da 10 puntos ms al jugador

Trampa1: resta 5 puntos al jugador

Trampa2: resta 10 puntos al jugador


El camino en donde podemos avanzar sern los espacios en blanco o que no contengan
ninguna de las palabras descritas anteriormente. Todas las palabras estarn estrictamente
en minsculas y separadas por coma. El usuario podr jugar con las flechas del teclado para
ir avanzando en el laberinto y encontrar la salida.

Se debe crear una lista simplemente enlazada por ir almacenando los movimientos del
jugador

Interfaz de Usuario

La pantalla principal del juego debe tener un botn donde se pueda iniciar y pausar el juego.
Tambin debe de mostrar las estadsticas del juego en tiempo de ejecucin, tales como:
Numero de movimientos total
Movimientos a la derecha
Movimientos a la izquierda
Movimientos hacia a bajo
Movimientos hacia arriba
Nombre del usuario
Tiempo transcurrido
La aplicacin debe de contener un men que tenga al menos las siguientes opciones:
Juego:
o Nuevo juego individual
o Nuevo juego contra PC
o Abrir
o Guardar
o Seleccionar Tema
o Seleccionar nivel de dificultad
o cargar archivo que resuelve laberinto
o Ver documentacin
o Salir

NUEVO
Esta opcin le permitir al usuario ingresar todos sus datos correspondientes y abrir el
archivo CSV que contiene el mapa del laberinto que se desea jugar, iniciando un nuevo
juego.

ABRIR
Esta opcin le permitir al usuario escoger un archivo de juego guardado anteriormente
para continuar jugando. Se deber cargar automticamente todo lo que en el juego anterior
se realiz incluyendo las estadsticas. La extensin del archivo deber ser .lab

GUARDAR
Esta opcin le permitir al usuario ingresar el nombre del archivo con que desea guardar el
juego. Deber guardar el mapa del laberinto, movimientos y todo lo que sea necesario para

terminar el juego. La estructura del archivo queda a criterio del estudiante siempre y
cuando sea archivo de texto plano y cumpla con los requisitos dichos anteriormente.

SELECCIONAR TEMA
Esta opcin permite al usuario cambiar las imgenes que se utilizan para figuras (jugador y
perseguidor), paredes, inicio y fin en el tablero. Mnimo 4 temas. Estos temas se pueden
cargar temas por medio de archivos CSV, la estructura del archivo debe ser la siguiente.
Nombre_tema,imagen_mueco,imagen_muro,imagen_camino,imagen_fin,imagen_mueco_que_sigue,imagen_pc
Nombre_tema,imagen_mueco,imagen_muro,imagen_camino,imagen_fin,imagen_mueco_que_sigue,imagen_pc
Nombre_tema,imagen_mueco,imagen_muro,imagen_camino,imagen_fin,imagen_mueco_que_sigue,imagen_pc
Nombre_tema,imagen_mueco,imagen_muro,imagen_camino,imagen_fin,imagen_mueco_que_sigue,imagen_pc
Nombre_tema,imagen_mueco,imagen_muro,imagen_camino,imagen_fin,imagen_mueco_que_sigue,imagen_pc

VER DOCUMENTACIN
Esta opcin permite al usuario visualizar el manual de usuario y manual tcnico
de la aplicacin en el explorador de internet por lo que deben de guardarse en
archivos HTML.

SALIR
Esta opcin sale del juego, preguntando antes si desea guardar el juego actual
si en caso se tiene un mapa cargado.
JUEGO CONTRA PC
En esta seccin se tendr la opcin para jugar contra la computadora, es decir,
que para cada laberinto se debe tener un segundo jugador el cual resolver el
mismo utilizando la regla de la mano derecha y este otro jugador deber partir
desde la ubicacin contraria a donde sale el jugador real.
NIVEL DE DIFICULTAD
En esta rea se deber tener 3 opciones las cuales corresponden a:

Novato
Intermedio
Experto

La dificultad est basada en la velocidad del mueco que nos persigue en el


caso del juego individual y en el caso del juego contra pc debe ser el mueco
que intenta solucionar el laberinto antes que nosotros.

ESTADSTICAS
Cada vez que el usuario resuelva un laberinto, el juego deber mostrar una
estadstica con los siguientes datos:
Nombre del jugador
Fecha
Hora
Tiempo en que se llev resolverlo
Nmero de movimientos realizados para resolver el laberinto.
o Numero de movimientos total
o Movimientos a la derecha
o Movimientos a la izquierda
o Movimientos hacia a bajo
o Movimientos hacia arriba

Despus de mostrar lo anterior en pantalla, el programa deber generar un


archivo en formato HTML cuyo nombre ser nombre del
usuario+fecha+hora, conteniendo la misma informacin mostrada en
pantalla.
Las estadsticas deben irse guardando la cantidad de veces que un jugador
haya participado, es decir que solo existir un archivo estadstico para todas
las personas que usaron el tema 1, otro para las personas que usaron el tema
2 y as sucesivamente, por tanto esta informacin debe de quedar almacenada
y no sustituida.

NOTAS IMPORTANTES
El diseo de las pantallas queda a criterio del estudiante (con respecto al color
o forma de presentar la informacin), pero tomando en cuenta lo fcil de
utilizar, agradable a la vista, sencillo y sobre todo funcional.
El juego debe contar con un cronometro que ser utilizado para el manejo del
tiempo de cada jugador, el cual se iniciara en cuanto el usuario inicie el juego,
tendr la opcin de pausar el juego y reanudar, tomando en cuenta que al
pausar el juego se deber ocultar el laberinto.
DOCUMENTACIN
Manual de Usuario
El manual de usuario deber contener una especificacin de cmo
utilizar la herramienta desarrollada, de manera simple y concisa.
Manual Tcnico
El manual tcnico deber contener
1. Cartula
2. ndice
3. Introduccin
4. Objetivos
5. Contenido:
Anlisis:
i. Descripcin del problema
ii. Anlisis de requerimientos del usuario
iii. Planteo inicial de la solucin
Diseo:
i. Diagrama de clases
ii. Descripcin detallada por clase (mtodos,
atributos, relaciones)
iii. Glosario de trminos
6. Conclusiones
7. Referencias bibliogrficas

Restricciones
Fecha de Entrega: 14/05/2015
El proyecto deber de realizarse de forma individual.
Deber de realizarse en lenguaje Java utilizando JCreator o Netbeans.
Se puede realizar en cualquier Sistema Operativo.
No se permite el uso de clases bajadas de internet, si se detecta copias de
cdigo automticamente se pondr nota de 1 punto, para diferenciar de los
que no entreguen y tengan nota de 0.
Copias del proyecto entre estudiantes tendrn nota de 1 punto, para
diferenciar de los que no entreguen y tengan nota de 0.
Las clases que utilicen debern nombrarlas con su nombre seguido de su
nmero de carnet de la clase, ejemplo: clase_200012345.java.
La forma de entrega ser en un CD con la documentacin y el cdigo fuente
de su proyecto identificado con su Nmero de Carnet, Nombre y Seccin.
Cualquiera que no cumpla con las indicaciones de cmo nombrar la clase de
java, o la forma de entrega de su proyecto tendr menos 25 puntos.

IMGENES IMPORTANTES
EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 1

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 2

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 3

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 4

EJEMPLO DE COMO SE VE LA ESTADSTICA CON EL TEMA 1

EJEMPLO DE COMO SE VE LA ESTADSTICA CON EL TEMA 2

EJEMPLO DE COMO SE VE LA ESTADSTICA CON EL TEMA 3

EJEMPLO DE COMO SE VE LA ESTADSTICA CON EL TEMA 4

EJEMPLO DE COMO SE VE EL JUEGO AL MOMENTO DE PAUSARLO

You might also like