Volver a Proyectos

🧙 Duelo de Magos

Un mago ataca un escudo energético con hechizos cuyo daño depende de su rango

Proyecto académico Python Condicionales y funciones

Escala del Proyecto

110Líneas
3Rangos
2Turnos

Descripción General

El más pequeño de los ejercicios del portafolio y el primero de la serie: una práctica de condicionales, funciones y bucles de la asignatura de Programación.

El programa pide la edad del mago, la convierte con try/except — 100 años por defecto si falla la conversión — y lo clasifica en Aprendiz (menos de 30), Hechicero (30 a 99) o Archimago (100 o más). La función poderBase() traduce ese rango a 5, 8 o 10 puntos de poder.

Luego simula dos turnos contra un escudo de 15 puntos de energía: en el primero lanza fuego, con daño poder // 2, y en el segundo un rayo, con daño poder // 3. Ambos con guardas para que ni el daño ni la energía puedan ser negativos. Al final informa de si el escudo aguantó o cayó.

Tecnologías Utilizadas


Python

try / except

for

División entera

Docstrings

Mecánica del Ejercicio

  • Clasificación por edad: Aprendiz (<30), Hechicero (30-99), Archimago (≥100).
  • Poder base según rango: 5 para el aprendiz, 8 para el hechicero, 10 para el archimago.
  • Escudo con 15 puntos de energía inicial.
  • Turno 1 — fuego: daño igual a poder_base // 2.
  • Turno 2 — rayo: daño igual a poder_base // 3.
  • Guardas: el daño nunca es negativo y la energía del escudo nunca baja de cero.
  • Resumen final con edad, rango, poder base, energía restante y si el escudo resistió o fue destruido.

Qué Aprendí

  • Que una función que recibe la clasificación y devuelve el poder es más clara que una cadena de if repartida por el programa.
  • Que la división entera tiene consecuencias: con un aprendiz de poder 5, el rayo hace 5 // 3 = 1 de daño. Es un resultado correcto y sorprendente hasta que lo calculas.
  • Que hay que proteger cada valor por separado, porque un daño válido puede seguir dejando la energía en negativo si no lo compruebas después.
  • Que un for de dos iteraciones con un if dentro para diferenciar los turnos es más limpio que escribir el mismo bloque dos veces.
  • Que este ejercicio es el punto de partida de Duelo de Dragones, donde la misma estructura crece a dos participantes, entrenamiento, aserciones y un bucle de combate abierto.

Mi Rol

Autor del ejercicio. Práctica individual de la asignatura de Programación.

Estado del Proyecto

Ejercicio académico completado en su versión 0.1, disponible en el repositorio de apuntes.

Código y Enlaces

Ruta dentro del repositorio: Ejercicios/EJ - CLASE/0111-EJ-codigo-Magia.py