Proyecto 1 IPC
Proyecto 1 IPC
Objetivos generales
● Conocer el lenguaje Java
● Aplicación de los conceptos de programación orientada a objetos recibidos en clase
magistral y laboratorio
● Elaborar la lógica para la solución del problema planteado.
Objectivos específicos
● Elaboración de algoritmos para los requerimientos del proyecto
● Enriquecer los conocimientos de la programación orientada a objetos en Java
● Enriquecer los conocimientos del lenguaje Java
● Desarrollar diagramas basados en la lógica del proyecto
● Implementación de sentencias de ciclos, de control y arreglos
● Construcción de aplicaciones en consola
Descripción de la actividad
La empresa Code n’Bugs observó el rendimiento mostrado al programar los tres juegos que se
le fue solicitado, por lo tanto se decidió asignarles la tarea de desarrollar un videojuego RPG
usando el lenguaje de programación Java.
La historia del juego es la siguiente: El jugador toma el papel de Vaan, hijo de la reina Garnet, el
cual debe reconquistar las ciudades del reino de Alexandria ya que el antiguo general de
Alexandria, y hermano de la reina Garnet, Kain, tomó por la fuerza el reino y se autoproclamó
emperador.
Vaan junto con 3 compañeros, los 4 guerreros de la luz, deben entrenar, subir de nivel y
aprender habilidades para poder reconquistar las ciudades y así acabar con el reino de terror
de Kain, de lo contrario el reino se perderá en los fuegos de la guerra.
El jugador también inicia con los 4 guerreros de la luz, cada uno de ellos con un trabajo
predefinido:
● Vaan: Guerrero
● Celes: Maga blanca
● Locke: Ninja
● Rydia: Maga oscura
Se pueden adquirir más trabajos para cada guerrero, teniendo como máximo 2 trabajos
disponibles por guerrero. Más información en la sección Sistema de juego.
El jugador es colocado en una de las casillas del mapa generado aleatoriamente por el juego,
donde también se colocan las ciudades de Alexandria, monstruos y otros elementos descritos
en la sección de Mapas.
El jugador se mueve por el mapa usando las teclas W, A, S, D, un cuadro a la vez para poder
llegar al destino deseado. Durante su travesía por el mapa, de forma aleatoria el jugador puede
encontrarse con enemigos (Ver más en la sección de enemigos) que proveen una buena
oportunidad de adquirir experiencia y subir de nivel, adquirir oro y objetos.
La partida puede finalizar al reconquistar todas las ciudades, o también puede ser finalizada por
el jugador en cualquier momento.
Guerrero
Aumenta la fuerza física y permite al personaje usar hasta dos armas de una mano, o una arma
pesada.
Tiene la habilidad especial de hacer daño de área al golpear a un enemigo.
Al subir de nivel con este trabajo, se suma 10 puntos mas a los puntos de cida.
Paladín
Trabajo bien balanceado que permite el uso de escudos y armas de una sola mano. Es el único
trabajo que puede llevar escudo.
Tiene la habilidad especial de defender de un ataque a los compañeros con su escudo en una
probabilidad de 35%.
Mago Blanco
Puede usar solo báculos como armas y permite usar magia blanca (ver sección de Magias).
La habilidad especial es poder usar la magia blanca Divinidad que causa daño a los enemigos
y cura a los aliados en un 40% del daño hecho.
Al subir de nivel con este trabajo, se suma 1 punto más al espíritu y a la concentración.
Mago oscuro
Puede usar solo báculos como armas y permite usar magia oscura (ver sección de Magias).
La habilidad especial es poder usar la magia oscura Meteoro que causa daño a los enemigos y
puede hacer que pierdan un turno en una probabilidad de 35%.
Al subir de nivel con este trabajo, se suma 1 punto más al espíritu y a la concentración.
Mago Rojo
Un mago capaz de usar armas de una sola mano, y usar magias blancas y oscuras de bajo nivel
(ver sección de Magias).
Al subir de nivel con este trabajo, se suma 1 punto más al espíritu y a la fuerza.
Puntos de estadísticas
:
Los puntos de estadísticas son usados para representar cuán fuerte es un personaje. Los
puntos son representados por números y son usados durante los encuentros para determinar
cuánto daño un personaje inflige a un oponente, o recibe de un oponente. Conforme un
personaje sube de nivel recibe incrementos en cada atributo. Diferentes trabajos ganan/pierden
atributos diferentes. Por ejemplo, un guerrero es lento, mientras que un Ninja es veloz.
Nivel
El nivel de una unidad es una media general de la fuerza combinada de sus demás atributos,
representa cuán poderosa es una unidad comparada con otra. Por ejemplo, una unidad de nivel
bajo es considerablemente más débil que una de un nivel alto. Generalmente un nivel se obtiene
mediante la acumulación de suficientes puntos de experiencia.
El desarrollador debe definir la forma en que se aumentan los puntos de cada estadistica
cuando se sube de nivel.
Fuerza
Estos puntos se usan para saber cuán potente es el ataque físico que se hará, se compara con
los puntos de defensa del enemigo para determinar cuánto daño se hace.
Defensa
Es usada para saber cuán resistente es el personaje al daño físico. Cuanto mayor sea la
Defensa de un personaje, menor será el daño que reciba.
Concentración
Es empleado para determinar cuán poderosas son las Habilidades Mágicas. Es comparado al
espíritu del enemigo para determinar cuánto daño recibe. Para Magos Blancos esto determina
cuántos puntos de vida se recuperan.
Espíritu
Es usada para determinar cuán resistente es el personaje al daño mágico. Cuanto mayor sea el
espíritu de un personaje, menor será el daño que reciba.
Velocidad
Determina la posición del personaje en la lista de turnos durante las batallas. quien tenga la
velocidad más alta inicia.
Puntos de vida
Se usan para determinar si un personaje es apto para combatir. Cuando son atacados, el daño
total se sustrae de los PV actuales. Cuando los PV de un personaje llegan a 0, queda exhausto
y es incapaz de seguir combatiendo. Algunos objetos como las Pociones y la mayoría de las
Habilidades Mágicas del Mago Blanco reponen los PV. Las Plumas de Fénix pueden reanimar
una unidad exhausta usualmente con una cantidad mínima de PV.
Experiencia
La Experiencia es empleada para incrementar el nivel. Para que un personaje suba de nivel,
cierta cantidad de experiencia es requerida. La cantidad no es constante sino que la experiencia
requerida para subir de nivel es mayor conforme se van ganando dichos niveles. Los enemigos
otorgan experiencia al grupo cuando son derrotados, y los jefes otorgan cantidades aún
:
mayores. La experiencia recibida se divide entre los personajes supervivientes al final de la
batalla, por lo que si un solo personaje sobrevive ganara tanta experiencia como lo hubiese
hecho el grupo completo.
Armas
Las armas son equipo que los personajes pueden utilizar para hacer daño al enemigo. Algunos
tipos de armas afectan algunas estadísticas del personaje, por ejemplo, las armas de dos
manos aumentan mucho los puntos de daño pero reducen considerablemente la velocidad.
Armas cortas
Las armas cortas no afectan los puntos de fuerza, pero si aumentan considerablemente la
velocidad.
Báculos
Son armas que pueden ser usadas por magos, aumentan los puntos de vida del personaje y
también aumentan los puntos de concentración.
Escudos
No son armas como tal, pero pueden ser equipados por los paladines. Aumentan los puntos de
defensa.
Objetos
Los objetos son elementos que puede llevar el jugador en su inventario y pueden ser utilizados
para curar, revivir o alterar la velocidad de otros personajes.
El desarrollador puede definir más objetos si lo desea. Los objetos mínimos son los descritos a
continuación.
Poción
Recupera algunos puntos de vida del personaje al que se le aplica. El cálculo de los puntos
recuperados es aleatorio con un margen inferior y uno superior.
Poción mayor
Recupera bastantes puntos de vida del personaje al que se le aplica. El cálculo de los puntos
recuperados es aleatorio con un margen inferior y uno superior.
Pluma de fénix
:
Revive a un personaje exhausto, recuperando también una pequeña parte de los puntos de
vida. El cálculo de los puntos recuperados es aleatorio con un margen inferior y uno superior.
Tienda de campaña
Permite a los personajes descansar y recuperar por completo los puntos de vida. También
recupera los puntos de uso de las magias.
Velocidad
Al aplicar a un personaje, sus puntos de velocidad aumentan y el orden de los turnos se
recalcula. El cálculo de los puntos de velocidad es aleatorio con un margen inferior y uno
superior.
Freno
Al aplicar a un personaje, sus puntos de velocidad disminuyen y el orden de los turnos se
recalcula. El cálculo de los puntos de velocidad es aleatorio con un margen inferior y uno
superior.
Magias
Las magias son poderes especiales que pueden ser utilizados por magos. El sistema de magias
se basa en puntos de uso, esto quiere decir que cada magia tiene una cantidad de usos
limitados. Estos puntos se recuperan al usar una tienda de campaña o descansar en una
posada.
El desarrollador debe definir la forma en que se aumentan los puntos de uso cuando se sube de
nivel.
Cura
Es una magia blanca considerada de bajo nivel y recupera puntos de vida. El cálculo de los
puntos recuperados es aleatorio con un margen inferior y uno superior, y también depende de
los puntos de concentración del mago.
Revivir
Es una magia blanca que revive a un personaje exhausto, recuperando también una pequeña
parte de los puntos de vida. El cálculo de los puntos recuperados es aleatorio con un margen
inferior y uno superior, y también depende de los puntos de concentración del mago.
Coraza
Es una magia blanca que aumenta los puntos de espíritu del personaje al que se le aplica esta
magia. El efecto desaparece después de que el personaje afectado finaliza cierta cantidad de
turnos. El cálculo de los turnos es aleatorio con un margen inferior y uno superior, y también
depende de los puntos de concentración del mago.
Escudo
Es una magia blanca que aumenta los puntos de defensa del personaje al que se le aplica esta
magia. El efecto desaparece después de que el personaje afectado finaliza cierta cantidad de
:
turnos. El cálculo de los turnos es aleatorio con un margen inferior y uno superior, y también
depende de los puntos de concentración del mago.
Divinidad
Es una magia blanca especial que no puede comprarse y es única del mago blanco. Causa
daño a los enemigos y cura a los aliados en un 40% del daño hecho, dicha cantidad se divide
entre los aliados vivos. El cálculo del daño es aleatorio con un margen inferior y uno superior, y
tambien depende de los puntos de concentración del mago.
Fuego
Es una magia oscura de bajo nivel que hace daño de fuego al objetivo. El cálculo del daño es
aleatorio con un margen inferior y uno superior, y también depende de los puntos de
concentración del mago.
HIelo
Es una magia oscura de bajo nivel que hace daño de hielo al objetivo. El cálculo del daño es
aleatorio con un margen inferior y uno superior, y también depende de los puntos de
concentración del mago.
Rayo
Es una magia oscura que hace daño de rayo al objetivo. El cálculo del daño es aleatorio con un
margen inferior y uno superior, y también depende de los puntos de concentración del mago.
Veneno
Es una magia oscura que hace daño de veneno al objetivo. El cálculo del daño es aleatorio con
un margen inferior y uno superior, y también depende de los puntos de concentración del mago.
Meteoro
Es una magia oscura especial que no puede comprarse y es única del mago oscuro. Causa
daño a los enemigos y puede hacer que pierdan un turno en una probabilidad de 35%. El cálculo
del daño es aleatorio con un margen inferior y uno superior, y también depende de los puntos de
concentración del mago.
Mapas
Los mapas se generan de forma aleatoria con tamaños de 7x7, 10x10 o 12x12 casillas. la
cantidad de ciudades a reconquistar también se genera de forma aleatoria con cantidades de 3,
4 o 5 ciudades.
Dentro del mapa hay casillas especiales que representan la tienda, la posada y las ciudades a
reconquistar.
También en cada mapa deben haber zonas con enemigos de nivel bajo y zonas con enemigos
de nivel alto.
El jugador puede moverse dentro del mapa usando las teclas W, A, S, D, un cuadro a la vez
para poder llegar al destino deseado. Durante su travesía por el mapa, de forma aleatoria el
:
jugador puede encontrarse con enemigos al llegar a alguna casilla.
Batallas
El sistema de batalla es por turnos, siendo definidos los turnos en base a la velocidad de los
enemigos y los caballeros de la luz.
Cada personaje (enemigo o caballero de la luz) puede realizar una acción dentro de su turno.
Atacar
Objeto: permite escoger algun objeto a utilizar
Magia (solo para magos): permite utilizar alguna magia
Saltar turno: el caballero de la luz no ejecuta ninguna acción.
Deberá de mostrar información útil de los resultados de cada acción, tanto de los enemigos
como de los caballeros de la luz. Cada batalla ganada le dará al jugador una cantidad de oro
calculada a partir del nivel del jugador, y también deberá recibir puntos de experiencia en base
al nivel de los enemigos.
Enemigos
Los enemigos son bestias que aparecen aleatoriamente al moverse dentro del mapa. Los
enemigos pueden presentarse en grupos de uno, dos o hasta tres enemigos. El grupo puede
contener distintos tipos de enemigos.
Los enemigos también tienen las estadísticas definidas para los caballeros de la luz, con
excepción de la experiencia ya que los enemigos no aumentan de nivel.
Hay algunos enemigos desfiles frente a algún elemento y eso hace que el daño recibido sea de
20% mayor.
El desarrollador debe definir al menos 3 enemigos de cada uno de los siguientes tipos:
Tipo fuego
Estos enemigos son débiles ante magia de hielo. Pueden atacar con daño físico o pueden hacer
daño mágico del elemento fuego.
Tipo Hielo
Estos enemigos son débiles ante magia de fuego. Pueden atacar con daño físico o pueden
hacer daño mágico del elemento hielo.
Tipo neutro
Estos enemigos no son débiles a ningún elemento. Solo atacan con daño físico.
Tienda
En la tienda el jugador puede comprar/vender objetos, magias y armas. El desarrollador debe
definir el precio de compra/venta de cada elemento.
:
Posada
La posada permite al jugador descansar a sus caballeros de la luz pagando cierta cantidad de
dinero.
Reportes
Debido a que el juego permite que se juegan varias partidas, una después de otra, cada partida
tiene sus propios resultados.
Por lo que el juego debe permitir que el usuario revise los datos de cada partida finalizada,
Importante
● Usar lenguaje de programación JAVA
● Práctica obligatoria para tener derecho al siguiente proyecto.
● Aplicación exclusivamente en consola.
● Es válido utilizar algún IDE o cualquier editor de texto.
● Las copias obtendrán nota de cero y se notificará a coordinación.
● No es válido copy/paste desde internet
Entrega
La fecha de entrega es el día 25 de marzo antes de las 14:00 horas por medio de la plataforma
Classroom. Los componentes a entregar son:
● Código fuente
● Código compilado (ejecutable)
● Manual de usuario
Calificación
La calificación se realizará el mismo día de la entrega. El estudiante debe llevar impresa la hoja
de registro de punteo que se publicará en los siguientes días.
: