Bot-Wissensbasis Direkt an Produktionscode gebunden

Wie die Bot-Spielstärke wirklich berechnet wird

Diese Seite erklärt den aktuellen DartBoom-Code – keine Wunschlogik und keine erfundenen Erfolgsquoten. Du kannst zuerst das einfache Modell lesen und anschließend jede Formel, Grenze und Beispielrechnung selbst prüfen.

Average-Stufen

8

Ø 35 bis Ø 95

Aufnahmefolge

30 %

Entscheidung einmal pro geeignetem Leg

Form-Sicherheitsrail

80–120 %

Wirkt auf Scoring und Checkout

01 · Überblick

Es gibt nicht die eine magische Spielstärken-Zahl

Die eingestellte Average-Stufe ist der Ausgangspunkt. Das konkrete Leg entsteht anschließend aus zwei möglichen Pfaden: einer aufgezeichneten Folge echter Aufnahme-Summen oder dem stochastischen Bot-Modell. Die Quelle enthält keine einzelnen Dartsegmente.

1

Leg beginnt

Für ein Bot-Leg im 501 Double-Out wird genau einmal entschieden, ob eine passende aufgezeichnete Aufnahmefolge benutzt werden soll.
2

30 % Aufnahmefolgen-Gate

Bei Erfolg wird eine noch nicht verwendete Gewinnfolge eines Quellspielers im Average-Fenster gezogen, auch ein schwächeres oder stärkeres Leg. Sonst läuft der Simulator. Es gibt keinen zweiten Versuch im selben Leg.
3

Scoring oder Finish

Der Simulator prüft vor jedem Besuch: Checkout-Route verfügbar? Dann dartweise Finishlogik, sonst normales Scoring.
4

Statistik entsteht

Erst die tatsächlich gewerteten Punkte und Darts ergeben den Leg-Average. Checkout-Prozent erscheint nur, wenn die Doppelversuche wirklich erfasst wurden.

02 · Messwert

Average: Punkte pro drei tatsächlich geworfene Darts

Der 3-Dart-Average ist eine nachträgliche Statistik. Die App summiert die gewerteten Punkte, teilt durch die Zahl der real verwendeten Darts, multipliziert mit drei und rundet auf eine Nachkommastelle.

Average = round₁((gewertete Punkte ÷ geworfene Darts) × 3)

Produktionsfunktion: calc3DartAverageFromTotals() beziehungsweise calc3DartAverage() in src/lib/dart/scoring.ts.

Beispiel A · schnelles Leg

501 ÷ 18 × 3 = 83,5

501 Punkte wurden mit exakt 18 Darts gelöscht. Das Ergebnis ist Ø 83,5.

Beispiel B · Club-Niveau

501 ÷ 23 × 3 = 65,3

Ein Finish mit Dart 2 zählt zwei Darts – nicht pauschal drei. Das Ergebnis ist Ø 65,3.

Konfiguration und Standard-Checkout

Beim Erstellen eines allgemeinen Bots ordnet defaultCheckoutQuoteForAverage() jeder Average-Stufe einen sinnvollen Startwert zu. Average und Checkout bleiben trotzdem getrennte Einstellungen.

StufeInterner NameStandard-CheckoutOrientierung: Darts für 501 bei exakt diesem Ø
Ø 35Novice7 %≈ 42,9 Darts
Ø 45Beginner12 %≈ 33,4 Darts
Ø 55Casual17 %≈ 27,3 Darts
Ø 65Club22 %≈ 23,1 Darts
Ø 75Competitive27 %≈ 20,0 Darts
Ø 85Advanced32 %≈ 17,7 Darts
Ø 95Pro37 %≈ 15,8 Darts
Ø 105World Class42 %≈ 14,3 Darts

Die letzte Spalte ist nur die algebraische Umkehrung der Average-Formel zur Orientierung. Sie ist kein eigener Generatorwert und kein Versprechen für ein einzelnes Leg.

03 · Punktephase

So erzeugt der Bot normale Scoring-Würfe

Der Bot zieht keinen glatten Zufallswert um den Average. Für jeden Dart wird ein Ziel – meist T20 oder T19 – gewählt. Ein direkter Nachbar, ein weiter Ausreißer und ein echter Board-Miss sind dabei drei verschiedene Ergebnisse.

Basisverteilung eines Darts auf T20/T19

Neutraler Codezustand: Checkout 30 %, Form 1,00, ausgeglichen, kein Drucksignal. Links/rechts sind zusammengefasst.

Ziel-TripleZiel-SingleNachbar-TripleNachbar-SingleWeiter Ausreißer0 / Board verfehlt
Ø 35
Triple 6,4 %weit 12,0 % · 0 6,0 %
Ø 45
Triple 13,7 %weit 8,5 % · 0 4,5 %
Ø 55
Triple 14,6 %weit 4,2 % · 0 1,8 %
Ø 65
Triple 21,0 %weit 3,2 % · 0 1,3 %
Ø 75
Triple 28,9 %weit 1,0 % · 0 0,2 %
Ø 85
Triple 36,0 %weit 0,0 % · 0 0,0 %
Ø 95
Triple 40,6 %weit 0,0 % · 0 0,0 %
Ø 105
Triple 48,5 %weit 0,0 % · 0 0,0 %

Skizze · mehr als ein Feld daneben

„Vorbei“ ist nicht automatisch 0

Ziel T20

direkt daneben: 5 / 1
zwei Felder weg: 12 / 18
möglich: 12, T12, 18, T18

Ziel T19

direkt daneben: 3 / 7
zwei Felder weg: 17 / 16
möglich: 17, T17, 16, T16

Der weite Ast wählt zu 82 % zwei und sonst drei Segmente Abstand. Ob der Dart dort Single oder Triple trifft, ist ebenfalls niveauspezifisch. Erst außerhalb der Scheibe wird daraus ein Scoring-0.

Scoring-0 ≠ Checkout-0

Im Scoring: 0 bedeutet jetzt ausschließlich, dass der Dart die physische Scheibe verfehlt. Das kommt bei schwachen Spielern vor, nimmt scharf ab und ist im neutralen Ø-85/95-Modell exakt 0 %.

Auf Doppel: 0 kann auch beim Profi korrekt sein. Wer D20 um Millimeter nach außen verfehlt, hat sehr präzise geworfen und trotzdem null Punkte erzielt. Deshalb verschwindet Checkout-0 nicht mit hoher Spielstärke; nur die Streuung und weite Doppel-Ausreißer schrumpfen.

Niveauspezifischer Fehleranteil beim Scoring

Basis für einen ausgeglichenen Spieler bei Form 1,00 ohne Restsituation-Druck. „Triple im Ausreißer“ ist der Anteil innerhalb der weiten Treffer, kein zusätzlicher Balken.

AverageWeiter Trefferdavon TripleBoard verfehlt / 0
Ø 3512,0 %22,0 %6,0 %
Ø 458,5 %25,0 %4,5 %
Ø 554,2 %28,0 %1,8 %
Ø 653,2 %32,0 %1,3 %
Ø 751,0 %36,0 %0,2 %
Ø 850,0 %–0,0 %
Ø 950,0 %–0,0 %
Ø 1050,0 %–0,0 %

Average wählt die nächstgelegene Stufe

nearestByAverage() nimmt in jeder Modell-Tabelle den numerisch nächsten Schlüssel. Die Triple-Tabelle besitzt 35–95. Einige Nebenmodelle starten bei 45; dort verwendet Ø 35 folglich die 45er-Werte.

Strategie gilt für den ganzen Besuch

Pro Besuch wird „stick“, „reactive“ oder „wander“ gewählt. Ein stabiler Profi bleibt häufig auf einem Ziel; reactive/wander können nach einem schwachen Dart zwischen 20 und 19 wechseln.

coDelta = (Checkout − 30) ÷ 200
formDelta = Formfaktor − 1
delta = coDelta + formDelta
neues Triple = Basis-Triple + Basis-Triple × delta × 1.4
neue Nachbar-Singles = Basis-Nachbarn − Basis-Nachbarn × delta × 1.2
Fehlerfaktor = clamp(Druck × Stabilität × Formfehler, 0,55 … 1,80)
Restbudget = 1 − weiter Ausreißer − Board-0
Ziel-/Nachbargewichte werden gemeinsam auf dieses Restbudget normiert

Exakte Reihenfolge aus effectiveTier(). Unter |delta| < 0,02 bleibt die Triple-/Nachbargewichtung unverändert. Danach wird sie auf das Budget normalisiert, das nach weitem Treffer und Board-0 noch übrig ist.

04 · Schwankung mit Charakter

Form bleibt stabil – Charakter reagiert auf das Match

Der Bot speichert eine Tages-/Matchform für das gesamte Match und eine kleinere Legform für das gesamte Leg. Wenige Spieler:innen reagieren zusätzlich auf starke Gegnerform, einen Rückstand oder Gegendruck. Diese Reaktion ist klein, abgestuft und verändert nie die Karriere-Spielstärke.

Gefestigt

Match σ / Cap
1,5 % / ±4,5 %
Leg σ / Cap
0,3 % / ±1,0 %
Rückzug zum Mittel
0,08
Korrektur-Cap
±4,0 %

Ausgeglichen

Match σ / Cap
5,0 % / ±7,5 %
Leg σ / Cap
3,0 % / ±3,0 %
Rückzug zum Mittel
0,03
Korrektur-Cap
±4,0 %

Flaky / streaky

Match σ / Cap
8,0 % / ±12,0 %
Leg σ / Cap
14,0 % / ±15,0 %
Rückzug zum Mittel
0,00
Korrektur-Cap
±0,0 %

Anpasser

7,5 % der Spieler

bis +6 %

Reagiert erst nach mindestens 6 beobachteten Darts. Liegt der Live-Average des Gegners 20 Punkte über der eigenen Bot-Stufe, ist das Signal voll.

Kämpfer

7,5 % der Spieler

bis +6 %

Wird nur stärker, wenn er im Leg oder im Match hinten liegt. Ein kleiner Punkterückstand wird ignoriert; Legs und Sets liefern das stabilere Signal.

Gegendruck-anfällig

7,5 % der Spieler

bis −6 %

Reagiert auf starke Gegnerform, Rückstand und einen Gegner im Finish. Der moderate Typ verliert höchstens 3 %, der stark ausgeprägte höchstens 6 %.

Ablauf der Formberechnung

  1. 1. Matchstart: Sechs gleichverteilte Zufallszahlen werden zu einer näherungsweise normalen Abweichung kombiniert. Profil-σ und Profil-Cap bestimmen die Breite.
  2. 2. Legstart: Dasselbe Verfahren liefert eine kleinere, für dieses Leg persistierte Abweichung.
  3. 3. Letztes Leg: Nur der Average des zuletzt abgeschlossenen Legs wird mit dem erwarteten Tagesniveau verglichen.
  4. 4. Ergebnis: Matchbasis × Legform × (1 + Korrektur), abschließend begrenzt auf 0.8–1.2.
erwarteter Leg-Ø = Konfigurations-Ø × Matchbasis
Abweichung = (letzter Leg-Ø − erwarteter Leg-Ø) ÷ erwarteter Leg-Ø
Korrektur = clamp(−Abweichung × meanReversion, ±correctionCap)
finale Form = clamp(Matchbasis × Legform × (1 + Korrektur), 0,8 … 1,2)
wirksame Form = clamp(finale Form × Duellfaktor, 0,8 … 1,2)

Bei noch keinem abgeschlossenen Leg entfällt die Korrektur. Nicht-finite Werte werden neutral behandelt; Matchbasis und Legform werden vorab auf ihre eigenen Rails begrenzt.

So entstehen Gegnerform und Rückstandssignal

vor 6 Gegner-Darts: Gegnerform = 0
danach: clamp((Gegner-Live-Ø − Bot-Ø) ÷ 20, 0 … 1)
Der Kämpfer benutzt die größere Information aus Matchrückstand und echtem Punkterückstand im laufenden Leg. Erst mehr als 24 Punkte Abstand zählen; bei 180 Punkten ist das Legsignal voll.

05 · Finishphase

Checkout-Quote: Trefferchance pro echtem Finish-Dart

Die Checkout-Quote ist im Simulator keine Wahrscheinlichkeit, einen ganzen Besuch oder eine komplette Route zu gewinnen. Sie ist die Basiswahrscheinlichkeit für jeden Dart, der tatsächlich auf ein abschließendes Doppel oder Bullseye gezielt wird.

roh = (Checkout-Quote ÷ 100) × Druckfaktor × Form
roh = roh × 1.18   falls Lieblingsdoppel
roh = roh × 0.82   falls Bullseye
p = clamp(max(roh, Recovery-Untergrenze), 2 % … 97 %)

Exakte Reihenfolge in checkoutDartHitProbability(). Ein Checkout-Wert ≤ 0 ist der einzige Sonderfall und liefert direkt 0.

steady

× 1,00

Wirkt nur auf den echten Finish-Dart.

clutch

× 1,08

Wirkt nur auf den echten Finish-Dart.

clutch_strong

× 1,15

Wirkt nur auf den echten Finish-Dart.

fragile

× 0,92

Wirkt nur auf den echten Finish-Dart.

fragile_strong

× 0,85

Wirkt nur auf den echten Finish-Dart.

Beispiel: Ø 65, Checkout 30 %, neutrale Form

Steady auf D20

30,00 %

0,30 × 1,00 × 1,00

D20 als Lieblingsdoppel

35,40 %

0,30 × 1.18

Bullseye

24,60 %

0,30 × 0.82

Keine Recovery in X01 – nur in Trainings-Drills

In X01 wirft der Bot jeden Doppel-Dart mit seiner eingestellten Quote, auch den zwanzigsten im selben Leg. Wer am Doppel hängt, verliert Average – nichts gleicht das aus. Nur die Wiederholen-bis-Treffer-Drills (JPBB, White Belt, Doubles Lock) behalten ab dem sechsten Fehler eine Untergrenze, damit ein Ziel nicht endlos hängt:

6 Fehler vorher → max(normal, 22 %)
7 Fehler vorher → max(normal, 32 %)
12 Fehler vorher → max(normal, 82 %)
13+ Fehler vorher → höchstens 92 % Recovery-Floor

Die allgemeine Schlussgrenze von 97 % bleibt darüber bestehen. Gemessen in X01: Ø 35 mit 10 % checkt real mit 10 % (mit der früheren Untergrenze waren es 16 %), mit 5 % real mit 5 % statt 13,5 %.

Route wird Dart für Dart neu gelesen

Bei Rest 100 kann die Tabelle zum Beispiel T20, D20 vorgeben. T20 ist ein Setup-Dart und zählt nicht als Checkout-Versuch. Erst D20 benutzt die Checkout-Quote. Trifft der Setup-Dart ein anderes Feld, ermittelt der Code vor dem nächsten Dart die Route für den neuen Rest erneut.

Ein normaler Doppel-Fehler wird räumlich um das wirklich angezielte Doppel verteilt. Bei schwachen Stufen existiert zusätzlich ein kleiner weiter Ast über zwei oder drei Segmente; ab Ø 95 ist dieser Ast null. Der Treffer-/Fehlerentscheid bleibt maßgeblich.

Streuung eines verfehlten Doppels

Der weite Anteil gilt bedingt darauf, dass der Doppel-Dart bereits als Fehler feststeht. Ein lokaler 0er bleibt auf jeder Stufe möglich: knapp außerhalb des Doppelrings ist außerhalb der Scheibe.

AverageRadiale σWinkel-σWeiter Ausreißer je FehlerBust-Auswahl
Ø 3522,0 SVG-Einheiten10,0°8,0 %4,0 %
Ø 4518,0 SVG-Einheiten8,5°5,5 %3,2 %
Ø 5515,0 SVG-Einheiten7,0°3,5 %2,5 %
Ø 6512,0 SVG-Einheiten5,5°1,8 %1,8 %
Ø 759,5 SVG-Einheiten4,4°0,6 %1,2 %
Ø 857,5 SVG-Einheiten3,5°0,1 %0,7 %
Ø 956,0 SVG-Einheiten2,8°0,0 %0,3 %
Ø 1055,0 SVG-Einheiten2,3°0,0 %0,2 %

05b · Unter der untersten Stufe

Einsteiger unter Ø 35: keine „steady darts“

Die unterste Engine-Stufe ist Ø 35. Die 32 Einsteiger:innen der Weltrangliste (Ø 20–35) spielen deshalb auf dieser Stufe plus einer Novizen-Schicht: Jede Aufnahme würfelt ihren eigenen Anteil wilder Darts. Die meisten Aufnahmen sind niedrig, ab und zu passt alles – dann kommt überraschend eine 100+ oder ein schnelles Finish.

sauber = Zufall < 6 %  → wild = 0
sonst wild = min(0,85, Mitte(Ø) × e^(N(0; 0,6) − 0,18))
wilder Dart: 70 % am Board vorbei, 30 % zwei, drei Segmente daneben (nie als Glücks-Triple)
Doppelquote = echte Spielerquote (auch unter 10 %), ohne Recovery-Untergrenze

applyBotNovice() – einmal pro Aufnahme, nur wenn BotConfig.novice gesetzt ist. Ohne Profil: dasselbe Objekt, keine zusätzliche Zufallszahl.

Kalibrierung: Mitte des Wild-Anteils

Die Mitte ist so kalibriert, dass ein Solo-501-Leg inklusive aller Doppel-Darts den Spieler-Average trifft – mit der echten, niedrigen Doppelquote und ohne Untergrenze. Ab Ø 32 reicht die schwächere Quote allein.

Einsteiger-ØMitte Wild-Anteil
Ø 2024,8 %
Ø 2219,3 %
Ø 2416,0 %
Ø 2610,6 %
Ø 285,9 %
Ø 302,7 %
Ø 320,0 %
Ø 350,0 %

06 · Aufzeichnungen

30 % Chance auf eine aufgezeichnete Gewinnfolge

In geeigneten interaktiven 501-Double-Out-Spielen – Training gegen einen Bot oder ein selbst gespieltes Turniermatch gegen einen Bot – fällt einmal pro Leg eine persistierte Entscheidung.

Zielwert für die Suche

Konfigurierter Bot-Average · harte Grenze

Passend ist ein Quellspieler, dessen Matchaverage innerhalb von ±5 liegt. Aus dessen aufgezeichneten Gewinn-Legs wird dann eines gezogen, auch wenn dieses konkrete Leg unter oder über dem Average lag. Tagesform verschiebt die Suche nicht.

Wiedergabe

visits[0] → visits[1] → … → Finish

Echt sind die Aufnahme-Summen und ihre Reihenfolge. Die drei angezeigten Einzeldarts werden legal rekonstruiert, weil die Quelle weder Segmente noch Ziel-Doppel enthält. Sichtbare rekonstruierte Doppel-Fehlwürfe werden im Turn gespeichert und zählen für die CO-Quote des Bots wie bei jeder anderen Bot-Aufnahme. Eine ungültige alte Auswahl wird verworfen und vom normalen Bot ersetzt – ohne einen zweiten 30-%-Wurf.

30 %

Feature-Gate pro geeignetem Leg. Die große JSON-Datei wird erst nach erfolgreichem Gate geladen.

±5 Quelle

Nur der Matchaverage der Quelle ist hart begrenzt. Das gezogene Leg liegt in der echten Streuung darunter, darauf oder darüber. Schwächer und besser schieben dieses Fenster.

30 Legs

Keine Wiederholung derselben sourceId im Fenster. Ist die passende Auswahl vorher leer, wird die Ausschlussliste früher geöffnet.

07 · Von Anfang bis Ende

Komplettes Rechenbeispiel für einen Club-Bot

Die folgenden Eingaben sind ein bewusst festgehaltenes Rechenbeispiel. Die Ergebnisse werden auf dieser Seite direkt mit den Produktionsfunktionen berechnet; nur die Beispiel-Eingaben 65, 30 %, 1,04, 0,99 und letzter Leg-Ø 72 sind gewählt.

1 · Konfiguration

Ø 65 · CO 30 %

Balanced, steady

2 · Form

1,0276

Match 1,04 × Leg 0,99 × leichte Korrektur

3 · Nächster Dart

T 21,7 %

oder D20-Treffer 30,83 %

erwarteter Tages-Ø = 65 × 1,04 = 67,60
letztes Leg relativ = (72 − 67,60) ÷ 67,60 = 6,51 % über Tagesniveau
balanced Korrektur = −6,51 % × 0.03 = -0,195 %
Form = 1,04 × 0,99 × (1 + -0,00195) = 1,0276
Checkout D20 = 30 % × 1,0276 = 30,83 %

Ob das Leg später zum Beispiel in 23 Darts endet, entscheidet die konkrete Folge der Zufallswürfe beziehungsweise eine ausgewählte aufgezeichnete Aufnahmefolge. Bei 23 Darts zeigt die Statistik Ø 65,3. Im Generator ergibt ein Treffer aus drei Doppelversuchen für dieses Leg 33,3 % Checkout – auch wenn die konfigurierte langfristige Basis 30 % war. Für Aufnahmefolgen zählt die Quote die rekonstruierten Doppelversuche.

08 · Interaktiv

Mit dem echten Modell nachrechnen

Ändere die Eingaben. Die Ergebnisfelder verwenden dieselben exportierten Funktionen und dieselbe Referenz wie der Spielbetrieb; es handelt sich nicht um eine vereinfachte Demoformel.

Rechner 1

Angezeigten Average nachrechnen

Das ist exakt dieselbe Funktion wie in den Match-Statistiken – einschließlich Rundung auf eine Nachkommastelle.

3-Dart-Average

65,3

501 ÷ 23 × 3; anschließend Rundung auf eine Nachkommastelle.

Rechner 2

Scoring-Dart einschließlich weiter Ausreißer

Die Balken kommen direkt aus effectiveTier(): Average bestimmt das Fehlerbudget; Form, Charakter und die reale Restsituation können es nur innerhalb dieser Stufe verändern.

Drucksignal

65 %

Nur aus eigenem und gegnerischem Rest; kein erfundener Publikums- oder Turnierdruck.

Charakterfaktor

1,000

Gegnerform 75 % · Rückstand 33 % · wirksame Form 1,000.

Ziel-Triple21,0 %
Ziel-Single49,9 %
Nachbar-Triple8,5 %
Nachbar-Single16,1 %
Weiter Ausreißer3,2 %
0 / Board verfehlt1,3 %

Rechner 3

Trefferchance des nächsten Doppel-Darts

Jeder echte Finish-Dart wird einzeln ausgewürfelt. Dieser Rechner ruft direkt checkoutDartHitProbability() auf. In X01 zählen bisherige Fehler nie: dort gibt es keine Recovery-Untergrenze. Das Fehler-Feld gilt nur für die Trainings-Drills JPBB, White Belt und Doubles Lock.

Finale Trefferchance

30,00 %

Die finale Wahrscheinlichkeit ist auf 2–97 % begrenzt; bei Quote 0 liefert die Produktionsfunktion ausdrücklich 0 %.

roh = 0.3 × 1,00 × 1,00
roh = 30,00 %
Recovery-Untergrenze = 0 %
clamp(roh, Recovery, 2–97 %) = 30,00 %

Rechner 4

Stabile Match- und Leg-Form

Matchform bleibt über das Match stabil, Legform über das Leg. Nur das zuletzt abgeschlossene Leg erzeugt je nach Charakter eine kleine Korrektur.

Wirksamer Formfaktor

1,0276

Wirkt auf Scoring und Checkout. Harte Sicherheitsgrenze: 0,8 bis 1,2.

erwarteter Leg-Ø = 65 × 1,04 = 67,60
relative Abweichung = 6,51 %
Korrektur = clamp(−Abweichung × 0.03, ±0.04) = -0,195 %
1,04 × 0,99 × (1 + -0,0020) = 1,0276

09 · Missverständnisse vermeiden

Was der aktuelle Code ausdrücklich nicht tut

Diese Grenzen sind genauso wichtig wie die Formeln. Sie verhindern, dass aus einer Konfiguration oder einer Hilfsfunktion mehr abgeleitet wird, als der Simulator tatsächlich verspricht.

Kein fester Score pro Besuch

Ein Ø-65-Bot wirft nicht automatisch 65 Punkte. Jeder Dart folgt einer diskreten Ziel-/Trefferverteilung.

Kein garantierter Generator-Leg-Average

Ø 65 ist das Spielermodell; generierte Legs dürfen durch Scoring, Checkouts und Form schwanken. Eine Aufnahmefolge kommt von einem Quellspieler im ±5-Fenster und kann selbst darunter oder darüber liegen, so wie dessen echte Gewinn-Legs.

Keine atomare Checkout-Münze

Gameplay verwendet nicht checkoutAttemptProbability() als Ganzes. Setup und jeder Finish-Dart werden einzeln gespielt.

Nur klar begrenzte Live-Signale

Interaktives Match und Turniersimulation reichen Gegnerrest, beobachteten Live-Average sowie Legs/Sets weiter. Ein einzelner guter Besuch zählt vor sechs Darts nicht als Form. Satzdart, Publikum und Turnierprestige kennt der Generator weiterhin nicht.

Denkzeit ändert keine Genauigkeit

thinkingSpeed steuert nur die Verzögerung der Darstellung. Sie ist kein Bestandteil von Average oder Checkout.

CO-Quote aus der Rekonstruktion

Ohne per-Dart Zielinformation kennt die Quelle die echten Doppelversuche nicht. Die rekonstruierten sichtbaren Doppel-Fehlwürfe werden konsistent markiert und gespeichert; Liveanzeige und Matchdialog rechnen die CO-Quote des Bots daraus.

Headless-Turniersimulation nutzt den Generator

Die 30 %-Auswahl aufgezeichneter Aufnahmefolgen sitzt im interaktiven Scoreboard. Reine Bot-gegen-Bot-Turniersimulationen verwenden generateBotTurnScore().

Form wird persistiert

React-Rerenders, einzelne Besuche oder Seitenreloads dürfen Match-/Legform nicht willkürlich neu auswürfeln.

10 · Wartung & Quellen

Diese Seite ist zugleich die technische Bot-Wissensbasis

Die sichtbaren Tabellenwerte werden direkt aus dem Produktionsmodell gelesen. Erklärtext, Ablaufdiagramme und Beispiele müssen bei jeder semantischen Änderung derselben Logik geprüft und aktualisiert werden.

Ausführbare Quellen

  • src/lib/dart/bot.ts
  • src/lib/dart/botConfig.ts
  • src/lib/dart/botStatements.ts
  • src/lib/dart/scoring.ts
  • src/lib/dart/checkout.ts
  • src/lib/dart/realLegConfig.ts
  • src/lib/dart/realLegs.ts
  • src/app/scoreboard/_hooks/useBotAutoplay.ts
  • src/lib/tournaments/engine/simulate.ts
  • scripts/build-players.mjs

Wissens- und Prüfquellen

  • .opencode/skills/darts-bot-knowledge/SKILL.md
  • docs/dart-501-knowledge.md
  • src/lib/dart/bot.test.ts
  • src/lib/dart/botCalculationReference.test.ts
  • src/lib/dart/botRealWorldCalibration.test.ts
  • src/lib/dart/botFormCalibration.test.ts
  • src/lib/dart/botNovice.test.ts
  • src/lib/tournaments/fieldMix.test.ts
  • docs/dart-players-knowledge.md §4b
  • src/data/real-legs/won_legs.json

11 · Meine ehrliche Antwort

Was DartBoom zum besten Trainingsprogramm machen kann

Nicht die Menge der Spiele. Nicht ein möglichst hoher Average auf dem Dashboard. Entscheidend ist, ob das Programm einen Spieler zuverlässig vom erkannten Problem zur besseren Entscheidung unter Matchdruck bringt.

Darts ist kein T20-Highscore-Spiel. Es ist eine Kette aus scoren, stellen, checken, abhaken – und nach einem schlechten Dart wieder klar werden.

Ein 140er bringt wenig, wenn du dir danach einen Rest stellst, den du nicht beherrschst. Ein starker Trainingsaverage bringt wenig, wenn D16 im Match plötzlich klein wird. Und ein verlorenes Leg sagt fast nichts, wenn wir nicht wissen, ob Scoring, Setup, Doppel oder der Kopf das Problem war. Genau deshalb trennt DartBoom diese Dinge schon heute, statt alles in einer hübschen Durchschnittszahl zu verstecken.

Es misst ehrlich

Gewertete Darts, echte Checkout-Versuche, Busts, kurze Finishes und einzelne Segmente sind wichtiger als eine schmeichelhafte Zahl. Ohne saubere Messung ist jeder Trainingsplan geraten.

Es trainiert das ganze Board

Scoring, Triple, Doppel, Checkouts, Bull, Boardabdeckung und Kombinationen sind getrennte Fähigkeiten. Die vorhandenen Spiele bilden diese Breite bereits besser ab als stumpfes Werfen auf ein Feld.

Es kennt Matchrealität

Form schwankt. Menschen haben kalte Legs, starke Aufnahmen und schlechte Doppelphasen. Der Bot, echte Legfolgen und Turnierkontext sollen genau diesen Transfer trainieren – nicht einen Metronomgegner.

Es kann Fortschritt erinnern

Runs, Matches und Statistiken bleiben erhalten. Daraus kann ein echter Coach entstehen, der nicht nur weiß, was du heute geworfen hast, sondern warum morgen etwas anderes dran ist.

Was die Sportwelt dazu sagt

“Häufiger ist besser als mehr.”

Karlheinz Zöchling · Dart-Trainer

Die App muss eine kurze, klare Einheit so leicht machen, dass sie regelmäßig statt nur am motivierten Sonntag passiert.

Quelle: Darts1

“Luke Littler was forged into a winner, not just a great dart-thrower.”

John Part · dreifacher Darts-Weltmeister

Ein guter Wurf ist noch kein Matchspieler. DartBoom muss Entscheidungen, Rückschläge und Druck genauso trainieren wie die Bewegung.

Quelle: Associated Press

“In tennis, perfection is impossible.”

Roger Federer · 20-facher Grand-Slam-Sieger

Federer gewann laut eigener Bilanz fast 80 % seiner Matches, aber nur 54 % der Punkte. Training muss den nächsten Dart besser machen – nicht jeden Fehler dramatisieren.

Quelle: Dartmouth

Die unbequeme Wahrheit

Heute ist DartBoom noch nicht das beste Trainingsprogramm.

Der entscheidende persönliche Plan ist ausdrücklich noch in Arbeit. Die App sammelt viele gute Übungen und Daten, wählt aber noch nicht zuverlässig die eine Einheit aus, die genau diesem Spieler heute am meisten bringt.

Es gibt noch keinen belastbaren Nachweis mit Spielern über mehrere Wochen, dass DartBoom schneller verbessert als freies Training oder andere Apps. „Bestes Programm“ wäre ohne diesen Beweis nur Werbung.

Auch der Bot ist nicht fertig erforscht: Die Aufnahmedaten enthalten nur gewonnene Legs und Aufnahme-Summen – keine echten Einzeldarts oder Doppelziele – und im hohen Profibereich noch zu wenig Material. Realismus muss weiter gemessen und ehrlich benannt werden, nicht behauptet.

Und Dateneingabe muss fast unsichtbar werden. Wenn sauberes Tracking nervt, wird es abgeschaltet – dann verliert auch der beste Algorithmus seine Grundlage.

Der Weg nach vorn

Der Trainingskreislauf, der gewinnen kann

  1. 1

    Diagnose

    Nicht „dein Average ist 61“, sondern: Du verlierst aktuell vor allem durch schwache erste neun Darts, falsche Setups oder D16 unter Druck. Mit genug Daten – und mit sichtbarer Unsicherheit bei kleinen Stichproben.

  2. 2

    Eine klare Aufgabe

    Eine Hauptschwäche, eine kurze Erhaltungsübung und ein Matchtransfer. Der Spieler muss vor dem ersten Dart verstehen, warum genau diese Einheit heute dran ist.

  3. 3

    Passende Belastung

    Ziele müssen knapp erreichbar sein und mit dem Spieler wachsen. Zu leicht ist Beschäftigung, zu schwer ist Frust. Fortschritt entsteht dazwischen.

  4. 4

    Transfer unter Druck

    Jede Technikphase endet in einem echten Leg, einem Botmatch oder einer Turniersituation. Ein Trainingsgewinn zählt erst dann wirklich, wenn er im Spiel wieder auftaucht.

  5. 5

    Beweis statt Konfetti

    Nach einigen Wochen zeigt DartBoom: Was wurde trainiert? Was hat sich stabil verändert? Wo kam es im Match an? Wenn nichts besser wurde, ändert das Programm den Plan – nicht die Farbe des Badges.

Mein Maßstab für dieses Programm

Nicht mehr werfen. Den richtigen Dart öfter unter dem richtigen Druck werfen – und schwarz auf weiß sehen, dass er im Match fällt.

Wenn DartBoom vor jeder Einheit drei Fragen beantwortet – Warum das heute? Was genau soll ich tun? Woran sehe ich, dass es trägt? – dann wird es mehr als ein Counter mit vielen Spielen. Dann wird es ein ehrlicher Coach. Das ist der Punkt, an dem es das beste Trainingsprogramm am Markt werden kann.

PrivacyLegal