
<aside> 🧩
Per affrontare questo esercizio è necessario:
<aside> 🧠
__init__<aside> 📢
In questo esercizio passerai per la prima volta del modello imperativo di programmazione al modello object oriented.
Se ti fai aiutare da una GenAI a scrivere il codice resta importantissimo comprendere cosa sta succedendo: qual è la definizione della classe e perché è scritta in un certo modo, quali sono le sue “parti” interne, come e dove vengono istanziati gli oggetti.
</aside>
L’obiettivo principale di questo esercizio è progettare e implementare due classi Python:
Weapon: rappresenta un’arma con danno casuale entro un intervallo.Player: rappresenta un personaggio con punti vita, statistiche base e un’arma equipaggiata.Scrivere inoltre una funzione main() di test che istanzia oggetti e simula alcuni turni di combattimento.
WeaponAttributi obbligatori (se lo ritenete opportuno potete aggiungerne altri):
name: str: es. “Two-handed sword”min_damage: int: ≥ 1max_damage: int: ≥ min_damagetype: str: solo “melee” (mischia) oppure “ranged” (distanza)Metodi:
get_damage() -> int: restituisce un intero casuale nell’intervallo [min_damage, max_damage]__str__: restituisce una stringa leggibile con nome e range di danno