Está en la página 1de 8

Grupo Programación JAVA

Facebook: http://www.facebook.com/groups/268785659811121/

Documento Elaborado Por: Dalej Ríos.
Correo: dalejrios@hotmail.com

Documento Libre de Descarga y Distribución: Este documento así como el código fuente del juego
puede ser distribuido libremente siempre haciendo referencia al autor, queda terminantemente
prohibida su venta.

Pacman

Introducción

El siguiente enunciado mostrará los requerimientos para fabricar el famoso


juego pacman. Este documento servirá como guía para la elaboración de dicho
juego en el lenguaje de programación JAVA.
Además en este proyecto se estará abarcando lo que es la memoria dinámica, es
decir, listas enlazadas y doblemente enlazadas así como varios algoritmos de
ordenación.
Se estará dando además una introducción al lenguaje HTML para la creación de
reportes que se detallarán más adelante y la utilización de paginas css para darle
formato a los reportes HTML.

Es un proyecto completo de programación, abarca desde la programación gráfica


hasta la elaboración de memoria dinámica. Se explican la forma como se crean
los objetos, comenzando por conceptos básicos para entender la programación.
Cualquier duda pueden escribirme a mi correo electrónico
dalejrios@hotmail.com o en el grupo de Java en facebook.
Enunciado

Se desea fabricar el juego pacman utilizando el lenguaje JAVA como aprendizaje


del lenguaje en la creación de videojuegos. El juego debe cumplir con las
siguientes condiciones:

Laberinto: El laberinto es el lugar por donde se mueve el usuario Pacman y los


enemigos Fantasmas. Posee paredes en las cuales ni el usuario ni los enemigos
pueden traspasar. Unicamente se puede ir por los caminos indicados en pantalla.
El laberinto debe poseer 4 posiciones por las que el usuario puede escapar en un
momento determinado y salir por el otro lado de la pantalla, es decir debe haber
una salida en el laberinto en el lado izquierdo por el cual el usuario podrá entrar
y salir en el lado derecho de la pantalla. Deberá además tener un cuadro en el
centro por el cual irán naciendo los fantasmas al principio del juego y cuando
pacman los destruya.

Un ejemplo del laberinto se muestra en la siguiente pantalla:

Usuario Pacman: El usuario es el famoso pacman, una bolita amarilla que irá
comiendo bolitas ubicadas en el laberinto. Éste será controlado por el usuario
utilizando las flechas de dirección del teclado de la computadora. Poseerá una
lista de vidas y una barra de salud. Las vidas disminuyen cuando la barra de vida
llega a 0. La barra de vida disminuirá conforme los fantasmas golpeen a pacman
o le lancen ataques especiales; la barra de salud posee 3 unidades, las cuales
disminuirán de acuerdo a la magnitud del ataque que Pacman reciba. Además
poseerá los siguientes ataques especiales:
• Bomba: Pacman puede dejar bombas en el piso con lo cual destruirá a
cualquier fantasma que pase sobre ella. Las pildoras bomba se indican con
un ícono de bomba. Las bombas podrán ser guardadas para utilizarse
posteriormente presionando la barra espaciadora.

• Aumento de Velocidad: Esta habilidad la obtiene pacman al obtener una


pildora de velocidad, las píldoras de velocidad como su nombre indican,
aumentan la velocidad de Pacman. La velocidad no aumentarán la
velocidad exponencialmente, con esto me refiero a que si Pacman come
una pildora aumentará su velocidad pero si con esta velocidad vuelve a
comer otra pildora de velocidad su velocidad no aumentará. Las píldoras
de velocidad se indican con un ícono de un zapato.

• Aumento de la Salud: Es una pildora indicada con el símbolo de corazón


el cual aumentará la salud de Pacman en 1 unidad.

• Vida Extra: Las vidas extras son íconos indicados por la palabra “1up”.
Aumetará las vidas de Pacman en 1 unidad.

• Tarro Atrapafantasmas: Este tarro atrapará a todos los fantasmas que


existan en el campo de juego durante 15 segundos. Luego de eso los
liberará. El ícono de este tarro es el de un pequeño jarrón.
Automáticamente cuando se agarra la píldora de tarro el tarro aparece y
todos los fantasmas son atrapados.

• Baston de las frutas: El bastón de las frutas posee un ícono de un bastón


el cual cuando pacman lo agarra hará que todos los fantasmas se
conviertan en frutas con lo cual pacman podrá comerlos.

• Píldora de Poder: Esta píldora está indicada por una píldora en forma de
un brazo musculoso. Hará que pacman cambie su apariencia a la de un
pacman con dientes y ojos enojados. Éste tendrá la capacidad de destruir a
los enemigos de un solo golpe(excpeto a Fantasmastein) comiéndolos,
además aumentará la velocidad de Pacman.

• Sombrero Congelante Protector: Este es un sombrero que posee el


ícono de un sombrero con varios agujeros de salida en forma de cañones.
El sombrero durará en la cabeza de Pacman durante 2 minutos. Este
sombrero protege a pacman de los fantasmas lanzandoles rayos
congelantes, con lo cual los fantasmas cambiarán su color a azul y tendrán
hielo encima. Los fantasmas mientras están congelados no pueden
moverse ni atacar. Pacman tampoco puede atacarlos pero si huir de ellos
ya que no puede ser atacado por el fantasma que esté congelado.

Nota: Todos los ataques de pacman son producidos por las pídloras. Si Pacman
no agarra una píldora no podrá realizar ningún ataque. Las pildoras irán
apareciendo aleatoriamente en el laberinto en los espacios vacíos, además al
principio del juego habrán 5 píldoras de poder.

Enemigos: Los enemigos son los típicos fantasmas del juego el los cuales nacen
en el cuadro central de la pantalla. Hay varios tipos de enemigos:

• Fantasmas: Los hay de 4 tipos, rojo, azul, amarillo y naranja. Los


fantasmas persiguen a pacman y cuando lo alcanzan le bajan una unidad
de salud. Estos fantasmas pueden ser derrotados fácilmente si se consume
una pildora de poder o por todos los poderes que pacman posee de
destrucción.

• Fantasmas Bombarderos: Lanzan bombas y misiles dependiendo de la


distancia en la que se encuentre pacman. Le bajan 1 unidad de vida por
cada bomba o misil que explote cerca de pacman. La forma de derrotarlos
es con una pildora de poder o con una bomba, pero ojo, tienes que atacarlo
por la espalda para que no te pueda ver y así lanzarte bombas, ya que no
importa si posees pildora de poder, si te lanza una bomba y te alcanza te
bajará vida. Estos fantasmas te lanzarán bombas y misiles en linea recta,
no pueden pasar las paredes del laberinto. Se caracterizan por ser
fantasmas de color verde y poseer casco de soldado.

• Bomba Fantasmal: Estos tipos de fantasmas tienen una velocidad mayor


que la de los otros fantasmas, te perseguirán hasta que te alcancen y no te
soltarán. Una vez que te alcanzan tienes unicamente 5 segundos para
consumir una pildora de poder y así poder destruirlo, de lo contrario
explotará y te bajará 2 unidades de vida. Se caracterizan por ser fantasmas
de color blanco.

• Fantasmastein: Es un fantasma muy poderoso, tienes que destruirlo con


bombas, necesitas dispararle 3 bombas para destruirlo, la ventaja es que
es muy lento pero si te alcanza te quitará toda la vida de un solo golpe. Es
más grande y fuerte que los demás así que lo podrás distinguir facilmente.
Fantasmastein no es un fantasma que nace, se convierte en él cuando un
fantasma evolucion se combina con él.

• Fantasma Evolucion: Convierte en un Fantasmastein a un fantasma. Para


poder convertirlo tienen que encontrarse. Los fantasmas evolucion son
débiles y pueden ser derrotados sin necesidad de consumir ningún tipo de
píldora.

Nota: Los fantasmas tendrán que perseguir a Pacman pero cuando Pacman
conuma una pildora de poder o el baston de frutas tendrán que escapar, es decir
alejarse de Pacman.

Niveles: Se deben tener varios niveles desde el 1 hasta el 10. Lo que hará que
varíe cada nivel será la cantidad de fantasmas que aparezcan en el nivel. Por
ejemplo en el nivel 1 podrían aparecer 5 fantasmas, en el 2 aparecerán 8 y así
sucesivamente. Además variará de acuerdo a la cantidad de enemigos poderosos
que aparezcan, es decir que si en el nivel 1 aparecía 1 Fantasmastein, en el nivel
2 pueden aparecer 2 o 3.

Tiempo: Se debe marcar el tiempo que el jugador lleva jugando en


Horas:Minutos:Segundos. Además se debe marcar el tiempo que al jugador le
queda cuando consume una píldora de poder o de ataques especiales.

Vidas y Salud: Se debe mostrar en pantalla la barra se salud y las vidas que le
quedan al usuario.

Radar de Enemigos: Se debe mostrar un radar pequeño que muestre las


ubicaciones de los enemigos en el mapa.

Sonido: El juego debe mostrar música de fondo así como también sonidos
dependiendo de las acciones que el juego realice.

Puntajes: El usuario ganará puntos cada vez que mate enemigos o consuma
bolas, a continuación se muestran los puntajes respectivos para cada cosa en el
juego:

• Consumir una bola común: 1 punto.


• Consumir a un enemigo: 50 puntos.
• Consumir una fruta: 50 puntos.
• Consumir a Fantasmastein: 100 puntos.
• Consumir una vida o pildora de salud: 0 puntos.

Administración del Juego

El juego deberá poseer funciones para administrar los usuarios, puntajes y


tiempos jugados.

Usuarios: Se deben guardar los usuarios que se registren en el sistema.


Partidas: Se deben guardar las partidas que cada jugador juega.

Nota: Todos los usuarios y partidas deben guardarse en archivos, es decir que si
ingreso un usuario y salgo del juego, cuando vuelva a cargar el juego deberá
seguir guardado el usuario, y lo mismo con las partidas.

Pantalla de Bienvenida: Se debe mostrar una pantalla de bienvenida en la cual


poseerá las siguientes funcionalidades:
• Nuevos Usuarios: Se debe crear la opción de agregar nuevos usuarios
ingresando los siguientes datos: Nombre, NickName, País de Residencia y
Edad. El Nombre puede repetirse pero el nickname no puede repetirse. Si
no se ingresan los datos, no se podrá jugar el juego.
• Seleccionar Usuarios: Se debe crear la opción de seleccionar los
usuarios ya registrados en el sistema.
• Reportes: Se podrán generar 3 tipos de reportes los cuales se detallan
más adelante.
• Opciones Administrativas: Se deben poseer las siguientes opciones:
◦ Eliminar Usuario: Esta opción elimina un usurio de la lista de usuarios
con todas sus partidas jugadas.
◦ Eliminar Partida: Se debe tener la opción de eliminar una partida
seleccionada por el usuario. Se le mostrarán todas las partidas jugadas
en orden de fechas y el usuario seleccionará la que desea eliminar.
◦ Eliminar Todas las Partidas: Se debe tener la opción de eliminar
todas las partidas seleccionando el nickname del usuario.
◦ Vaciar la Memoria: Se debe tener la opción de eliminar todos los
usuarios y todas las partidas.

Reportes: La aplicación será capáz de generar los siguientes 3 reportes,


dependiendo de la opción que el usuario seleccione:

• Reporte MaxTPlayer: Este reporte indicará quien es el usuario con más


tiempo jugado. Deberá mostrar:
▪ El Nombre del Jugador.
▪ El Nickname del Jugador.
▪ El País de Residencia.
▪ La edad del jugador.
▪ El Tiempo total de juego que ha tenido.
▪ El punteo máximo alcanzado.
▪ Todas sus partidas con sus respecitvos tiempos, puntajes, nivel
alcanzado y las vidas que le quedaron al terminar la partida. Cada
partida deberá mostrar además la fecha y la hora en que se jugó.
▪ Un porcentaje de tiempo del total jugado. Es decir que si todos los
jugadores han jugado el 5 horas y éste jugador ha jugado 3 horas, ha
jugado un 60% del total del juego.

• Reporte Players: Este reporte mostrará todos los jugadores con sus
respectivas partidas ordenadas desde el menor puntaje hasta el mayor
puntaje que el jugador ha obtenido. Los jugadores deberán estar
ordenados alfabéticamente por NickName Deberá mostrar lo siguiente:
▪ El Nombre del jugador.
▪ El nickname del jugador.
▪ El país de residencia.
▪ La edad del jugador.
▪ El tiempo total que el jugador ha jugado
▪ El porcentaje de tiempo del total de tiempo jugado.(Vease
descripción en el reporte MaxTPlayer.
▪ La lista de partidas ordenadas de menor a mayor puntaje que el
jugador ha jugado. Cada partida debe mostrar la fecha y hora en que
se guardó la partida, el punteo obtenido en esa partida, la cantidad
de tiempo jugado, el punteo obtenido en esa partida y las vidas que le
quedaron al terminar esa partida.

• Reporte Top3: Este reporte deberá mostrar los 3 usuarios con el mayor
punteo obtenido en “una sola partida”, es decir que mostrará los usuarios
que en un solo juego obtuvieron el máximo punteo. Debe mostrár la
siguiente información:
▪ El Nombre del jugador.
▪ El nickname del jugador.
▪ El país de residencia.
▪ La edad del jugador.
▪ El Lugar obtenido en los 3 lugares.
▪ El Punteo máximo alcanzado.
▪ Todas sus partidas con sus respectivos puntajes y la fecha en la que
se jugó. (no se incluyen tiempos) ordenados por puntaje de mayor a
menor.
▪ Hace cuanto tiempo que el jugador jugó esa partida en la que obtuvo
ese punteo máximo. Es decir, los días, horas, minutos y segundos que
han pasado desde que el usuario obtuvo ese punteo en esa partida.

Anotaciones Adicionales

• La aplicación será realizada en un editor sin utilizar la opción de arrastrar


controles. Es decir que absolutamente toda la interfáz gráfica será
desarrollada a código manualmente.
• Se debe utilizar listas enlazadas (ya sea simplemente enlazadas o
doblemente enlazadas) para alamcenar los usuarios y las partidas.
• Cuando se seleccionen usuarios deberán estar ordenados alfabéticamente
y darle la opción al usuario de buscarse por nickname, por nombre, por
edad o por país de residencia.
• Se programarán las listas manualmente, no se usará ninguna librería como
ArrayList para almacenar los datos.
• Se guardarán los datos y las partidas en archivos.
• Se creará un autoejecutable jar para ejecutar automáticamente el juego.
• Las gráficas serán animadas tanto como tira de imágenes estáticas como
archivos .gif.
• Se usarán varios algoritmos de ordenación.

FASE 1: Juego con toda su funcionalidad.


FASE 2: Administración del juego.
PD: Actualmente este documento es el primer ciclo del juego. Posteriormente se
irán creando nuevos ciclos de construcción añadiéndole cada vez más
funcionalidad al sistema.

Lecturas Recomendadas

Recomiendo la lectura de los siguientes libros y documentos para comprender y


ampliar mejor los temas vistos.

• Libro “JAVA Cómo Programar” Autor: Deitel Deitel. Séptima edición.


Editorial Pearson Education.

• Matemáticas Discreta y Combinatoria, Una introducción con Aplicaciones.


Autor Ralph P. Grimaldi. Tercera Edición. Editorial Pearson Education.
◦ Personalmente este libro es una maravilla, te explica varios algoritmos
de ordenación con muchas aplicaciones. Lo recomiendo mucho.

• Programación de un Space Invaders, Autor: Alexander Hristov.


◦ No tengo mucha información sobre este autor, no encontré su página
web, pero dejo el link de 4shared donde está este curso, cualquier
información de su página hacerla saber a dalejrios@hotmail.com para
colocarlo como referencia en este documento.
http://search.4shared.com/postDownload/K8olbbQo/Creando_el_juego_S
pace_Invader.html

También podría gustarte