Вы находитесь на странице: 1из 15

Universidad de San Carlos de Guatemala

Facultad de Ingeniería

Escuela de Ciencias y Sistemas

Facultad de Ingeniería Escuela de Ciencias y Sistemas Introducción a la Programación y Computación 1 Ing.

Introducción a la Programación y Computación 1

Ing. Neftaly Calderón

Aux. Luis Fernando De Paz Santizo

Aux. Rony de León

Proyecto 2

Laberinto

Objetivos

General

Aplicar programación orientada a objetos en el lenguaje de programación java, creando una aplicación grafica utilizando un IDE de programación.

Introducir al estudiante a manejo de memoria dinámica

Que el estudiante desarrolle habilidad de análisis para el desarrollo de software de calidad

Específicos

Crear una aplicación 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 dinámicas y que tenga el criterio para saber en dónde aplicarlas.

Que el estudiante logre la manipulación de archivos de texto

Descripción

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 aplicación tratará de alcanzarnos para que perdamos la partida. Esta entidad será representada por cualquier figura o imagen y aparecerá en el mapa pocos segundos después de haberse iniciado el juego.

El objetivo de esta entidad es que nos perseguirá por todo el camino (más corto) que vayamos recorriendo en ese instante, para tratar de alcanzarnos y así finalizar y perder el juego.

Al inicio del juego la aplicación 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 línea.

Ejemplo:

El mapa del laberinto inicial seguirá el siguiente formato:

Muro: La palabra “muro” indicará que existe una pared en esa Posición.

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 más al jugador

Bonus2: da 10 puntos más al jugador

Trampa1: resta 5 puntos al jugador

Trampa2: resta 10 puntos al jugador

El camino en donde podemos avanzar serán los espacios en blanco o que no contengan ninguna de las palabras descritas anteriormente. Todas las palabras estarán estrictamente en minúsculas 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 botón donde se pueda iniciar y pausar el juego. También debe de mostrar las estadísticas del juego en tiempo de ejecución, 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 aplicación 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 documentación

o

Salir

Seleccionar nivel de dificultad o cargar archivo que resuelve laberinto o Ver documentación o Salir

NUEVO

Esta opción 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.

del laberinto que se desea jugar, iniciando un nuevo juego. A BRIR Esta opción le permitirá

ABRIR

Esta opción le permitirá al usuario escoger un archivo de juego guardado anteriormente para continuar jugando. Se deberá cargar automáticamente todo lo que en el juego anterior se realizó incluyendo las estadísticas. La extensión del archivo deberá ser “.lab”

La extensión del archivo deberá ser “.lab” G UARDAR Esta opción le permitirá al usuario ingresar

GUARDAR

Esta opción 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.

plano y cumpla con los requisitos dichos anteriormente. S ELECCIONAR T EMA Esta opción permite al

SELECCIONAR TEMA

Esta opción permite al usuario cambiar las imágenes que se utilizan para figuras (jugador y perseguidor), paredes, inicio y fin en el tablero. Mínimo 4 temas. Estos temas se pueden cargar temas por medio de archivos CSV, la estructura del archivo debe ser la siguiente.

Nombre_tema,imagen_muñeco,imagen_muro,imagen_camino,imagen_fin,imagen_muñeco_que_sigue,imagen_pc

Nombre_tema,imagen_muñeco,imagen_muro,imagen_camino,imagen_fin,imagen_muñeco_que_sigue,imagen_pc

Nombre_tema,imagen_muñeco,imagen_muro,imagen_camino,imagen_fin,imagen_muñeco_que_sigue,imagen_pc

Nombre_tema,imagen_muñeco,imagen_muro,imagen_camino,imagen_fin,imagen_muñeco_que_sigue,imagen_pc

Nombre_tema,imagen_muñeco,imagen_muro,imagen_camino,imagen_fin,imagen_muñeco_que_sigue,imagen_pc

Nombre_tema,imagen_muñeco,imagen_muro,imagen_camino,imagen_fin,imagen_muñeco_que_sigue,imagen_pc

VER DOCUMENTACIÓN

Esta opción permite al usuario visualizar el manual de usuario y manual técnico de la aplicación en el explorador de internet por lo que deben de guardarse en archivos HTML.

de internet por lo que deben de guardarse en archivos HTML. S ALIR Esta opción sale

SALIR

Esta opción sale del juego, preguntando antes si desea guardar el juego actual si en caso se tiene un mapa cargado.

JUEGO CONTRA PC

En esta sección se tendrá la opción 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 ubicación 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 muñeco que nos persigue en el caso del juego individual y en el caso del juego contra pc debe ser el muñeco que intenta solucionar el laberinto antes que nosotros.

ESTADÍSTICAS

Cada vez que el usuario resuelva un laberinto, el juego deberá mostrar una estadística con los siguientes datos:

• Nombre del jugador

• Fecha

• Hora

• Tiempo en que se llevó resolverlo

• Número 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

Movimientos hacia a bajo o Movimientos hacia arriba Después de mostrar lo anterior en pantalla, el

Después 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 información mostrada en pantalla.

Las estadísticas deben irse guardando la cantidad de veces que un jugador haya participado, es decir que solo existirá un archivo estadístico para todas las personas que usaron el tema 1, otro para las personas que usaron el tema 2 y así sucesivamente, por tanto esta información debe de quedar almacenada y no sustituida.

NOTAS IMPORTANTES

El

diseño de las pantallas queda a criterio del estudiante (con respecto al color

o

forma de presentar la información), pero tomando en cuenta lo fácil 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 opción de pausar el juego y reanudar, tomando en cuenta que al pausar el juego se deberá ocultar el laberinto.

DOCUMENTACIÓN

Manual de Usuario

El manual de usuario deberá contener una especificación de cómo utilizar la herramienta desarrollada, de manera simple y concisa.

Manual Técnico

El manual técnico deberá contener

1. Carátula

2. Índice

3. Introducción

4. Objetivos

5. Contenido:

Análisis:

i. Descripción del problema

ii. Análisis de requerimientos del usuario

iii. Planteo inicial de la solución

Diseño:

i. Diagrama de clases

ii. Descripción detallada por clase (métodos,

atributos, relaciones)

iii. Glosario de términos

6. Conclusiones

7. Referencias bibliográficas

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 código automáticamente se pondrá nota de 1 punto, para diferenciar de los que no entreguen y tengan nota de 0.

• Copias del proyecto entre estudiantes tendrán nota de 1 punto, para diferenciar de los que no entreguen y tengan nota de 0.

• Las clases que utilicen deberán nombrarlas con su nombre seguido de su número de carnet de la clase, ejemplo: clase_200012345.java.

• La forma de entrega será en un CD con la documentación y el código fuente de su proyecto identificado con su Número de Carnet, Nombre y Sección.

• Cualquiera que no cumpla con las indicaciones de cómo nombrar la clase de java, o la forma de entrega de su proyecto tendrá menos 25 puntos.

IMÁGENES IMPORTANTES

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 1

IMÁGENES IMPORTANTES EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 1 EJEMPLO DE COMO

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 2

IMÁGENES IMPORTANTES EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 1 EJEMPLO DE COMO

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 3

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 3 EJEMPLO DE COMO SE VE

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 4

EJEMPLO DE COMO SE VE EL LABERINTO CON EL TEMA 3 EJEMPLO DE COMO SE VE

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 1

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 1 EJEMPLO DE COMO SE VE

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 2

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 1 EJEMPLO DE COMO SE VE

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 3

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 3 EJEMPLO DE COMO SE VE

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 4

EJEMPLO DE COMO SE VE LA ESTADÍSTICA CON EL TEMA 3 EJEMPLO DE COMO SE VE

EJEMPLO DE COMO SE VE EL JUEGO AL MOMENTO DE PAUSARLO

EJEMPLO DE COMO SE VE EL JUEGO AL MOMENTO DE PAUSARLO