paladino.png

<aside> đź§©

Prerequisiti

<aside> đź§ 

Cosa imparerai con questo esercizio

<aside> 📢

NovitĂ 

Obiettivo

L’obiettivo di questa “Parte 4” non è aggiungere nuove classi, ma rendere robusto il codice esistente. Attualmente, molti metodi (come take_damage o i costruttori) accettano valori non validi (es. take_damage(-10)) e per evitare la “corruzione” dello stato del gioco forzano dei valori di default. Questo, ovviamente, non è il modo corretto di trattare e gestire gli errori: si evita di mandare in crash il programma, ma il gioco comunque non funzionerà come ci si aspetta.

In generale, se qualcosa è andato storto e l’esecuzione del programma non può proseguire, la linea d’azione corretta è quella di gestire l’eccezione e terminare “ordinatamente” il programma.

In questo esercizio, modificherai le classi Weapon, Player e Potion affinché sollevino eccezioni quando ricevono dati o si trovano in stati non validi. Successivamente, modificherai il main.py per catturare queste eccezioni e impedire che il programma vada in crash, informando l’utente dell’azione fallita.


Specifiche delle classi (refactor)

Dovrai modificare le classi esistenti per introdurre la validazione.

1. Classe Weapon

2. Classe Player

3. Classe Potion