Intro Práctica 2P – Batalla por Gielinor

En la tierra de Runescape, Gielinor, existen tres tipos de personajes: Los Guerreros (G), los Magos (M) y los Arqueros (A). Cada uno de estos héroes lucha por hacerse del control absoluto de esta tierra, por lo que debe eliminar a todos los competidores que pudiera tener.

Durante un combate, los magos tienen ventajas sobre los guerreros, los guerreros sobre los arqueros y los arqueros sobre los magos. Esto se resume en el siguiente “triángulo de combate”:

Conbat Triangle Image

Triángulo de Combate

Esto es, por ejemplo, un guerrero infringirá más daño a un arquero (150%) que a un mago (50%) y daño normal a otro guerrero (100%).

Es propio de cada jugador su ataque (el daño que causan), defensa (el daño que evaden) y su salud. Esto es determinado al momento de creación del mismo de la siguiente forma:

Atributos Personajes

Atributos Personajes

Cuando un personaje ataque, el daño que infringe se calcula mediante la siguiente fórmula:

dañoInfringido = (ataqueAgresor – defensaVíctima) x factorDeVentaja

Donde factorDeVentaja se define de la siguiente manera:

  • factorDeVentaja = 1.5 si el tipo del atacante tiene ventaja sobre el de la víctima.
  • factorDeVentaja = 1 si el tipo del atacante es el mismo que el de la víctima.
  • factorDeVentaja = 0.5 si el tipo del atacante tiene desventaja sobre el de la víctima.

Cada personaje tiene una única manera de atacar, que se caracteriza por su alcance como se indica a continuación:

Guerrero (como un rey en ajedrez):

Ataque Guerrero

Ataque Guerrero

Mago:

Ataque Mago

Ataque Mago

Arquero (como una torre en ajedrez):

Ataque Arquero

Ataque Arquero

Para fines prácticos, Gielinor es de 20 x 20 unidades cuadradas (casillas) de tamaño, cada casilla puede contener sólamente a un personaje. No más de 10 personajes pueden luchar por Gielinor en cada partida.

Una partida comienza indicando cuantos jugadores tendrá (2 o más, hasta 10). Seguido cada jugador ingresa su nombre y escoge su tipo de personaje, entre Guerrero (G), Mago (M) o Arquero (A). El juego se encarga de posicionar a los jugadores (aleatoriamente). Cada jugador se representa en el tablero por un número del 0 al 9 y por la inicial de su tipo de personaje, por ejemplo 0A (para un Arquero).

Las partidas se juegan por turnos. Durante su turno el jugador se podrá moverse hasta 5 casillas, para posicionarse, y luego atacar (si es posible) a otro jugador.

Pantalla Inicial

Pantalla Inicial

El ejemplo anterior consta de 3 jugadores. El primer turno le corresponde al jugador 0 que es un Arquero. Este podría moverse -1 en el eje X y -2 en el eje Y (en total 3 casillas), posicionándose en la misma fila que el jugador 2, para poder atacarlo.

Pantalla 1

Pantalla 1

Para proceder con el ataque, se deberá ingresar el número del jugador al que desea atacar, en este caso 2. Si el ataque se realiza exitosamente debería imprimiste “Daño infringido: 4.5 – Vida Jugador 2: 35.5”. Ya que los Arqueros tienen 7 de Ataque, los Magos 4 de defensa y los arqueros tienen ventaja sobre los magos (7 – 4) * 1.5 = 4.5. En caso de no ser posible el ataque imprimir “Ataque imposible” y pasar el turno en cualquier caso al siguiente jugador.

Cuando un jugador haya acabado con sus competidores, deberá imprimirse “Ganaste Nombre!”, donde nombre del jugador.

Se pide:

  • Diseñar el modelo de clases para la implementación del juego. Se debe usar el concepto de herencia.
  • Implementar las clases y métodos necesarios para que funcione el juego.
  • Escribir un informe de 1 hoja que indique cómo funciona su juego y los criterios que se siguieron para su diseño e implementación.

Notas:

  • Pueden hacer grupos de hasta 3 personas.
  • Fecha límite de entrega: viernes 20 de junio de 2014 por cualquier medio.

Autores:

  • Antonio Alurralde
  • David Zonneveld

Deja un comentario