Jullie kennen het spel “Darts” waarbij je met pijltjes naar een bord werpt. Het aantal punten dat je scoort hangt af van de plaats waar het pijltje in het bord belandt. Het dartbord is verdeeld in sectoren. De getallen langs de rand geven het aantal punten aan voor een pijltje in de desbetreffende sector. De dartscore van een pijl wordt bepaald door de sector en de ring waarin de pijl belandt:

Scorenotatie bij darts

Afspraken voor de scorenotatie van één pijl (van binnen naar buiten):

Opdracht

Schrijf een Python programma dat aan de gebruiker 3 scores in scorenotatie vraagt (één voor elke worp). Na 3 correcte scores (volgens de scorenotatie) print je het totaal van punten af voor die beurt als volgt: Je totale score van de 3 worpen is <totale_score>.

Indien de ingegeven scorenotatie ongeldig is, dan moet er via een foutafhandeling (try… except) volgede boodschap verschijnen: '<invoer>' is geen correcte score, probeer opnieuw. Vervolgens wordt een nieuwe invoer gevraagd voor die worp.

Voor de custom exception (die je met raise genereert) gebruik je de exception IncorrecteScore (reeds gedefinieerd in de eerste 2 lijnen van je code -> niet verwijderen!). Eventueel andere exceptions vang je op met de specifieke expeption (niet met een algemene exception) maar de boodschap is dezelfde nl. '<invoer>' is geen correcte score, probeer opnieuw..

Er wordt geen rekening gehouden met hoofd- of kleine letters bij de ingave!

Voorbeelden

Invoer

BULL
25
T6

Uivoer

Je totale score van de 3 worpen is 93.

Invoer

BULLL
D19
t34
16
miss

Uivoer

'BULLL' is geen correcte score, probeer opnieuw.
't34' is geen correcte score, probeer opnieuw.
Je totale score van de 3 worpen is 54.