Att simulera darts

Är du intresserad av att gå på idrottsevenemang men är trött på de höga biljettpriserna? Gör då som jag och simulera din favoritsport på datorn! Förutom att det är gratis så får du själv styra slutresultatet, alltså finns det endast fördelar med detta. I det här inlägget kommer jag att berätta om mitt simuleringsprogram och ett par resultat jag kom fram till.

Tavlan

Jag konstruerade tavlan enligt de dimensioner som definieras av WDF, dvs. World Darts Federation. Problemet med detta var att järnvajrarna som begränsar tavlans områden i verkligheten har en viss tjocklek, vilket skulle ha varit arbetsdrygt att ta i beaktande. Detta kan ha en liten betydelse då det gäller bredden på trippelringen i min tavla jämfört med dess verkliga bredd. Annars motsvarar min tavla en riktig darttavla.

Det är möjligt att double- och treble-ringarna är aningen smalare än i verkligheten.

Kastens avvikelse

För att simulera kast och träffar lät jag varje kast avvika med avståndet r i en slumpmässig riktning från den egentliga siktpunkten, där r är ett slumpmässigt tal i [0, R] och R är ett tal som i förväg valts som maximal kastavvikelse. Denna metod fungerar relativt bra eftersom kasten hamnar då i en cirkel med flest träffar nära punkten man siktar på. Det som är dock nackdelen är att man i verkligheten har större missar i lodrät riktning jämfört med vågrät riktning. Därmed en bättre approximering skulle ha varit att konstruera kastcirkeln som en ellips.

Funktionen tar in en siktpunkt och en avvikelse som polära koordinater (\theta, r), beräknar dess summa och ger tillbaka den egentliga träffpunkten som en ny polär koordinat.

Resultat

Då jag hade programmerat alla nödvändiga funktioner som gjorde det möjligt att visa och räkna poäng började jag med simuleringarna för att testa olika strategier. Som först ville jag jämföra olika områden på tavlan tillsammans med olika spridningar. Områdena var T20, T19, Bull samt området T11/T14. Mellan T11 och T14 är ett område jag ibland siktar på eftersom det är ett väldigt stabilt område. Om mitt kast är dåligt får jag ändå antagligen 8 eller 9 (se bild 1). Spridningarna jag testade på dessa områden var 2 cm, vilket motsvarar ungefär professionella spelarnas kast, 5 cm, som motsvarar ungefär mina kast, samt 17 cm vilket är tavlans radie. På varje område med varje spridning simulerade jag 1000 spel (totalt 12000), där ett spel går ut på att man kastar turer på tre pilar tills man går över 500p. Sedan jämförde jag medelvärdet av antalet turer som krävdes, och resultatet var följande:

T20T19BullT11/T14
2 cm5.2755.526.0747.806
5 cm9.019.0459.65610.296
17 cm15.17214.83112.24715.852

Kom ihåg att mindre värden är bättre. Från tabellen ser vi orsaken varför professionella siktar mer eller mindre alltid på T20. Då spridningen blir tillräckligt stor (väldigt stor) lönar det sig dock att sikta på bullen eftersom många pilar annars hamnar utanför tavlan.

Så här såg tavlan ut efter en simulering där man kastat et antal kast mot T20, T19, Bull och T11/T14.

Den huvudsakliga poängen är dock inte simuleringarnas resultat, utan främst att simulationen var en rolig utmaning för mig. Då man börjar vara trött på studierna (eller livet) kan det vara bra för sin egen motivation att utföra ett projekt som tangerar både ens studier och fritidsintressen. Under tiden jag kodade darttavlan lärde jag mig nya saker både inom matematik och programmering, och jag kommer inte på ett bättre sätt att göra detta.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *