R8 – El Escalafón Mágico de Hogwarts

El Ministerio de Magia ha implantado un nuevo sistema de clasificación de magos para evaluar su progreso, capacidades y responsabilidades dentro del mundo mágico.

Tu misión será desarrollar, en Java, un pequeño sistema que represente este escalafón utilizando herencia entre clases, donde cada rango mágico añade nuevas habilidades y comportamientos.

⚠️ Importante

Usar una enumeración (enum) para representar las Casas de Hogwarts.

En este ejercicio NO se deben usar:

  • Métodos abstractos
  • Polimorfismo como concepto principal
  • Interfaces

Diagrama de clases

1 – Enumeración de Casas

Crea una enumeración llamada Casa con las siguientes opciones:

  • GRYFFINDOR
  • SLYTHERIN
  • RAVENCLAW
  • HUFFLEPUFF

Cada mago pertenecerá a una casa, y esta afectará a sus atributos iniciales.


2 – Clase base Mago

Crea la clase Mago, que será la base de todos los personajes mágicos.

Atributos

  • nombre
  • nivel (1–100)
  • vida (0–100)
  • mana (0–100)
  • casa (tipo Casa)

Comportamiento

  • entrenar()
    Aumenta el nivel y consume algo de vida y mana.
  • descansar()
    Recupera vida y mana.
  • ficha()
    Devuelve una cadena con los datos del mago.
  • lanzarHechizo(String hechizo)
    Método general que devuelve el daño causado (por defecto, bajo o 0).

Al crear un mago, se aplicará un bonus inicial según su casa.


3 – Rangos mágicos (herencia)

Aprendiz (hereda de Mago)

Representa a los alumnos más jóvenes de Hogwarts.

Atributo extra

  • torpeza (probabilidad de fallo)

Métodos

  • practicarBasico() → reduce torpeza

Comportamiento

  • Puede lanzar hechizos básicos (Lumos, Alohomora)
  • Tiene posibilidad de fallar según su torpeza

Hechicero (hereda de Aprendiz)

Magos con formación avanzada.

Atributo extra

  • controlVarita

Métodos

  • estudiarEnBiblioteca() → mejora control y nivel

Comportamiento

  • Acceso a hechizos más potentes (Expelliarmus, Stupefy)
  • Menos fallos y más daño

Auror (hereda de Hechicero)

Magos especializados en combate y seguridad mágica.

Atributos extra

  • experienciaCombate
  • arrestos

Métodos

  • patrullar() → mejora experiencia
  • arrestar(Aprendiz objetivo) → solo si el objetivo está débil

Comportamiento

  • Hechizos más efectivos en combate
  • Puede usar hechizos defensivos

Profesor (hereda de Hechicero)

Magos con rol docente en Hogwarts.

Atributos extra

  • asignatura
  • prestigio

Métodos

  • enseñar(Aprendiz alumno) → mejora al alumno
  • evaluar() → aumenta prestigio

Comportamiento

  • Hechizos más controlados
  • Menor consumo de mana

4 – Programa principal

Crea una clase Main que:

  • Cree al menos:
    • 2 Aprendices
    • 2 Hechiceros
    • 1 Auror
    • 1 Profesor
  • Muestre la ficha de cada personaje.
  • Ejecute varias acciones:
    • Lanzar hechizos
    • Entrenar / descansar
    • Enseñar, patrullar o arrestar según el rango

Cada variable debe declararse con su tipo concreto
(no usar listas genéricas de Mago).




El conocimiento es poder… pero en Hogwarts, también lo es la herencia bien diseñada.