Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Implementación de la Composición | Composición
OOP en Python en Profundidad

bookImplementación de la Composición

Una excelente manera de mostrar la composición es construir un sistema de guerreros RPG paso a paso. Comenzando con clases de equipamiento simples y finalizando con un guerrero completamente interactivo, cada componente contribuye a un diseño dinámico y flexible.

Note
Nota

Incluso si ciertas clases como Armor o Shield no participan en los cálculos de inmediato, es útil crearlas desde el principio. Completan el equipo del guerrero, mejoran la claridad y preparan el sistema para futuras extensiones.

El sistema comienza con la clase Weapon. Define tres atributos—name, attack y weapon type—e incluye un método de cadena que produce una salida legible como “Broadsword, Attack 20”. El siguiente paso introduce las clases Armor, Helmet y Shield. Cada una tiene un name, un defense value y un material type, también soportados por métodos de cadena.

La clase Enemy añade interacción. Con un solo atributo (HP) y un método take_damage(), reacciona a los ataques reduciendo la salud, mostrando la cantidad perdida y anunciando la derrota cuando la salud llega a cero.

El elemento central es la clase Warrior. En lugar de almacenar estadísticas simples, contiene instancias completas de otras clases: la armadura, el casco y el escudo se asignan al momento de la creación, mientras que la ranura del arma comienza vacía. El guerrero puede:

  • equipar un arma de forma dinámica usando equip_weapon(),
  • atacar a un enemigo utilizando el valor de ataque del arma,
  • mostrar el estado extrayendo información del equipo compuesto.

Este sistema de guerrero RPG ilustra cómo múltiples objetos interactúan para crear un comportamiento dinámico. Las armas definen el daño, el equipo completa la identidad del guerrero y los enemigos proporcionan retroalimentación a través del combate. El resultado es una estructura modular donde diferentes configuraciones conducen a distintos resultados, haciendo que el sistema sea reutilizable y adaptable.

question mark

¿Qué afirmación ilustra mejor el papel de la composición en el sistema de guerrero RPG?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain how composition is different from inheritance in this context?

Can you show how to add new weapon or armor types to the system?

How would you expand this system to include magic or special abilities?

Awesome!

Completion rate improved to 4.76

bookImplementación de la Composición

Desliza para mostrar el menú

Una excelente manera de mostrar la composición es construir un sistema de guerreros RPG paso a paso. Comenzando con clases de equipamiento simples y finalizando con un guerrero completamente interactivo, cada componente contribuye a un diseño dinámico y flexible.

Note
Nota

Incluso si ciertas clases como Armor o Shield no participan en los cálculos de inmediato, es útil crearlas desde el principio. Completan el equipo del guerrero, mejoran la claridad y preparan el sistema para futuras extensiones.

El sistema comienza con la clase Weapon. Define tres atributos—name, attack y weapon type—e incluye un método de cadena que produce una salida legible como “Broadsword, Attack 20”. El siguiente paso introduce las clases Armor, Helmet y Shield. Cada una tiene un name, un defense value y un material type, también soportados por métodos de cadena.

La clase Enemy añade interacción. Con un solo atributo (HP) y un método take_damage(), reacciona a los ataques reduciendo la salud, mostrando la cantidad perdida y anunciando la derrota cuando la salud llega a cero.

El elemento central es la clase Warrior. En lugar de almacenar estadísticas simples, contiene instancias completas de otras clases: la armadura, el casco y el escudo se asignan al momento de la creación, mientras que la ranura del arma comienza vacía. El guerrero puede:

  • equipar un arma de forma dinámica usando equip_weapon(),
  • atacar a un enemigo utilizando el valor de ataque del arma,
  • mostrar el estado extrayendo información del equipo compuesto.

Este sistema de guerrero RPG ilustra cómo múltiples objetos interactúan para crear un comportamiento dinámico. Las armas definen el daño, el equipo completa la identidad del guerrero y los enemigos proporcionan retroalimentación a través del combate. El resultado es una estructura modular donde diferentes configuraciones conducen a distintos resultados, haciendo que el sistema sea reutilizable y adaptable.

question mark

¿Qué afirmación ilustra mejor el papel de la composición en el sistema de guerrero RPG?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
some-alt