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:

Per beurt mag je 3x gooien en de totale punten van die beurt is de som van de 3 worpen.
Afspraken voor de scorenotatie van één pijl (van binnen naar buiten):
Schrijf de functie dart_score die als enige argument een string meekrijgt met de dartsnotatie en het aantal punten of score berekent voor die worp. De score wordt altijd als getal teruggegeven. Indien de opgegeven scorenotatie ongeldig is dan moet de custom exception “IncorrecteScore” worden opgeroepen met de error-tekst:
Er wordt geen rekening gehouden met hoofd- of kleine letters bij de invoer!
Schrijf daarnaast een hoofdprogramma dat aan de gebruiker vraagt om 3x een geldige scores in te geven volgens de score-notitie (zie hoger). Je hoofdprogramma gebruikt de functie dart_score om de punten te bepalen bij een correcte invoer en die bij een incorrect invoer de customer exception IncorrecteScore oproept. Je hoofdprogramma vangt deze custom exception op en afhandelt ze af door de error-tekst af te printen. De vraagzin wordt dan opnieuw gesteld. Na de invoer van 3 correcte scorenotaties print je het totaal van punten af voor die beurt als volgt:
Je totale score van de 3 worpen is <totaal>.
Tip:
T18
20
bull
Je totale score van de 3 worpen is 124.
99
19
MISSS
d8
T0
t10
'99' is niet correct.
'MISSS' is niet correct.
'T0' is niet correct.
Je totale score van de 3 worpen is 65.