Darts (of darten) is een eeuwenoud spel dat zou ontstaan zijn toen soldaten wedstrijden begonnen te houden als tijdverdrijf tussen veldslagen door. Daarbij werden korte speren gegooid op omgekeerde bodems van wijntonnen en later op doorgezaagde boomstamschijven. Op de schijven werd een puntentelling aangebracht. In de wintermaanden werd de sport noodgedwongen binnen gehouden, wat tot gevolg had dat men de kleine speren moest vervangen door darts en er een nieuwe regelgeving voor het beoefenen van de binnensport werd bedacht. Naarmate het spel zich verder ontwikkelde, begonnen de rijkere lagen van de bevolking ook interesse te tonen in darts. Zo staat er geschreven dat Hendrik VIII in 1530 van zijn tweede vrouw Anne Boleyn een kostbaar versierde Biscayan-dartset geschonken kreeg.
Een oude Nederlandse en in de Vlaamse spreektaal nog gebruikelijke naam van het spel is vogelpik. Deze term is afkomstig van een soortgelijk spel dat vroeger gespeeld werd in cafés. Dit spel bestond uit een roos met ringen, niet zoals het actueel dartbord dus, en een nagemaakte vogel met een scherpe snavel. De vogel werd met een koord aan het plafond opgehangen en de spelers probeerden de snavel van de vogel in de roos te zwieren.
Het wedstrijdbord dat tegenwoordig gebruikt wordt komt uit Londen. Het bord bestaat uit een ronde vezelplaat van 18 millimeter dik, waarop sisalvezelborsteltjes onder grote druk gelijmd en geperst worden. Het geheel wordt omlijst door een metalen band. Het bord wordt voorzien van een vakindeling door middel van verschillende kleuren. Vervolgens wordt er een metalen web op bevestigd dat diezelfde vakindeling heeft. De functie van dit web is er voor te zorgen dat altijd duidelijk is in welk vak een dart gegooid is. Op de buitenzijde wordt een metalen ring aangebracht waarop volgens de vakindeling bepaalde cijfers zijn bevestigd. Deze ring is los te maken, zodat de cijfers ten opzichte van het bord verschoven kunnen worden.
Het is de bedoeling dat het vak (bed) 20 middenboven zit. Op deze 20 wordt normaal gesproken het meest gegooid. Hierdoor zal de bodemplaat in dit vak dan ook het eerste kapot gaan. Elke dart die gegooid wordt tast de vezeltjes van het bord aan. Door de lijmlaag valt het bord niet uit elkaar, maar na verloop van tijd wordt op bepaalde plaatsen een opeenhoping van vezeltjes zichtbaar, in de vorm van bulten. Om dit te voorkomen dient het bord om de zoveel tijd gedraaid te worden, zodat het cijfer twintig weer boven een nieuw, minder gehavend deel van het bord staat. De 20 staat wel altijd boven een zwart deel. Moderne sisalvezelborden moeten beslist niet worden natgemaakt zoals nog wel wordt gedacht.
De afmetingen van het dartbord worden aangegeven in bovenstaande figuur. De double ring en triple ring zijn telkens 9.6 mm breed.
Het dartbord is verdeeld in ringen en sectoren. De getallen langs de rand geven het aantal punten aan voor een pijltje in de desbetreffende sector. Deze sectoren zijn onderverdeeld in nog een aantal kleinere vakken.
in het midden is de double bull of bull's eye (rood), 50 punten
daaromheen de single bull (groen), 25 punten
daaromheen een brede ring, het bed (zwart en wit), waarvoor het aantal punten geldt dat op de rand van het bord staat
daaromheen een smalle ring, de triple (of treble) ring (rood en groen); deze levert drie maal het puntenaantal op
daaromheen weer een bed
daaromheen de double ring (rood en groen) met twee keer het aantal punten dat bij het betreffende vak staat
Een dart in de buitenste zwarte rand (waar de cijfers staan) of naast het bord levert geen punten op. Een bouncer, een dart die van het bord terugkaatst, heeft geen score tot gevolg. Daarnaast is er ook geen score wanneer een dart na geworpen te zijn plots uit het bord valt voordat de speler in de gelegenheid was alle 3 zijn pijlen uit het bord te halen (let wel, dit wordt officieel geen bouncer genoemd). Als een speler een dart in één van zijn eerder gegooide darts gooit (een 'Robin Hood'), wordt de laatste van die twee darts wel gezien als zijnde 'geworpen', maar wordt er geen score aan die dart toegekend.
We beschouwen een carthesisch coördinatenstelsel1 met oorsprong in het centrum van de bull's eye van een dartboard. Een speler werpt een pijltje naar het dartbord dat belandt op de coördinaten $$(x, y)$$, waarbij beide coördinaten worden uitgedrukt in millimeter. Bepaal het aantal punten dat met dit pijltje behaald wordt. Hiervoor ga je als volgt te werk:
Schrijf een functie poolcoordinaten waaraan twee reële getallen $$x$$ en $$y$$ moeten doorgegeven worden. Deze getallen stellen de positie $$(x, y)$$ van een punt $$P$$ in het carthesisch coördinatenstelsel voor. De functie moet een tuple $$(r, \theta)$$ van reële getallen teruggeven, dat de positie van het punt $$P$$ uitdrukt in poolcoördinaten2, waarbij de pool $$O$$ samenvalt met het centrum van de bull's eye, en de poolas samenvalt met de $$X$$-as. De coördinaat $$r$$ van het punt $$P$$ is de afstand $$OP$$. De coördinaat $$\theta$$ geeft de georiënteerde hoek aan tussen de positieve $$X$$-as en de halfrechte van O door P. Deze hoek wordt uitgedrukt in radialen, en er moet gelden dat $$-\pi < \theta \leq \pi$$.
Gebruik de functie poolcoordinaten om een functie darts te schrijven, waaraan twee reële getallen $$x$$ en $$y$$ moeten doorgegeven worden. Deze getallen stellen de positie $$(x, y)$$ van een punt $$P$$ in het carthesisch coördinatenstelsel voor, en worden uitgedrukt in millimeter. Als derde argument scores kan aan de functie optioneel ook nog een reeks (een lijst of een tuple) van natuurlijke getallen doorgegeven worden. Het aantal getallen in de reeks bepaalt het aantal sectoren waarin het dartbord verdeeld wordt. De getallen geven de puntentelling aan wanneer de sectoren in wijzerzin worden doorlopen, te beginnen bij de sector die de punten op de positieve $$Y$$-as bevat. Deze laatste sector bevindt zich altijd symmetrisch ten opzichte van de positieve $$Y$$-as. Indien geen expliciete puntenreeks wordt doorgegeven aan de functie, dan moet de puntenreeks 1, 2, …, 20 gebruikt worden. De functie moet het aantal punten teruggeven dat behaald wordt als een pijltje naar het bord geworpen wordt, dat belandt op positie $$(x, y)$$ in het carthesisch coördinatenstelsel met oorsprong in het centrum van de bull's eye.
Een van de moeilijkheden bij deze opgave is het bepalen van de sector op het bord waarin het pijltje geworpen wordt. Onderstaande schets maakt duidelijk hoe je een hoek in poolcoördinaten ($$\theta$$; de groene hoek) kunt omzetten naar een hoek ($$\beta$$; de rode hoek) die je kunt gebruiken om de overeenkomstige sector te bepalen.
Met een beetje goniometrie is het makkelijk in te zien dat \[ \beta + \theta = \frac{\pi}{2} + \frac{\pi}{s}\,, \] waarbij $$s$$ het aantal sectoren voorstelt. Met andere woorden \[ \beta = \frac{\pi}{2} + \frac{\pi}{s} - \theta\,. \] Als je eenmaal $$\beta$$ bepaald hebt, en je weet dat elke sector een hoek van $$\frac{2\pi}{s}$$ beslaat, dan kan je de hoek $$\beta$$ omzetten naar de index van de sector. De eerste sector (deze bovenaan de $$Y$$-as) heeft dan index 0, die rechts ervan index 1, enzoverder in wijzerzin.
>>> poolcoordinaten(137, 0)
(137.0, 0.0)
>>> poolcoordinaten(104.5, 0)
(104.5, 0.0)
>>> poolcoordinaten(0, 200)
(200.0, 1.5707963267948966)
>>> poolcoordinaten(0, 166.3)
(166.3, 1.5707963267948966)
>>> poolcoordinaten(-30.0, 22.0)
(37.20215047547655, 2.5088438185876103)
>>> darts(137, 0)
6
>>> darts(104.5, 0)
18
>>> darts(0, 200)
0
>>> darts(0, 166.3)
2
>>> darts(-30.0, 22.0)
18
>>> punten = [20, 1, 18, 4, 13, 6, 10, 15, 2, 17, 3, 19, 7, 16, 8, 11, 14, 9, 12, 5]
>>> darts(137, 0, scores=punten)
6
>>> darts(104.5, 0, scores=punten)
18
>>> darts(0, 200, scores=punten)
0
>>> darts(0, 166.3, scores=punten)
40
>>> darts(-30.0, 22.0, scores=punten)
9