TIPP-LAUF-TELEMETRIE / SITZUNGSPROTOKOLL

Einen Tipp-Lauf als Sitzungsprotokoll lesen

Diese Seite ordnet Dauer, Textauswahl, Zeichenprüfungen, Metrikformeln, Heatmap-Zustände, Zwei-Spieler-Panel und den Pfad für öffentliche Ergebnisse dem aktuell sichtbaren Editor-Code zu.

Tippgeschwindigkeitstest öffnen

Sitzungs-Steuerstreifen

Vor einem Lauf zeigt der Editor drei Auswahlen. Sie sind Editor-Einstellungen und keine Aussage über eine Person oder deren Tippen.

  • DAUER — 30 · 60 · 120

    Die Dauerauswahl bietet 30, 60 und 120 Sekunden. Ihr Startwert ist 60 Sekunden.

  • SCHWIERIGKEIT — 3 TEXTMENGEN

    Die Auswahl bietet beginner, intermediate und expert. Ihr Startwert ist intermediate.

  • MODUS — SOLO · 2 SPIELER

    Der Editor beginnt im Solo-Modus. Das andere sichtbare Panel ist ein Zwei-Spieler-Modus mit getrennten Eingaben.

Textquelle und Auswahl

Text-Arrays sind für jede angezeigte Sprache und jede Schwierigkeit hinterlegt. Bei der Initialisierung und erneut beim Teststart nutzt der Editor Math.floor(Math.random() * texts.length), um einen Eintrag aus dem passenden Array zu nehmen.

Laufuhr und Endpunkte

Der Timer läuft, während ein Test gestartet und nicht beendet ist. Ein Lauf endet bei timeLeft === 0 oder wenn eine Eingabe die Länge des aktuellen Texts erreicht.

01 · SOLO — Startsteuerung beginnt den Lauf

Im Solo-Modus ruft die Startsteuerung den Startpfad direkt auf und fokussiert danach die Solo-Eingabe.

02 · 2 SPIELER — 3 → 2 → 1 vor den Eingaben

Im Zwei-Spieler-Modus startet die Startsteuerung einen 3–2–1-Countdown. Der Startpfad fokussiert danach Player 1.

03 · ENDE — Nullzeit oder Textlängen-Grenze

Der Endpfad wird bei timeLeft === 0 oder bei einer Eingabelänge von mindestens currentText.length erreicht.

Tafel für Zeichenmessung

Für eine Eingabe durchläuft der Editor Zeichen nach Position und prüft jedes gegen currentText an derselben Position. Übereinstimmende Positionen fließen in correctChars; totalChars ist die Eingabelänge.

  • WPM — round((correctChars / 5) / elapsedMinutes)

    Wird nur berechnet, wenn elapsedMinutes größer als 0 ist.

  • ACCURACY — round((correctChars / totalChars) * 100)

    Wird nur berechnet, wenn totalChars größer als 0 ist.

  • FORTSCHRITT — round(currentIndex / currentText.length * 100)

    currentIndex folgt der aktuellen Eingabelänge.

Heatmap und Zustands-Ledger

Wenn ein neu hinzugefügtes Solo-Zeichen ein erwartetes Zeichen hat, wird dieses erwartete Zeichen kleingeschrieben und gezählt. Ein Fehler wird gezählt, wenn typedChar !== expectedChar.

AKTUELLER TEST — Nur bei aktuellen Daten sichtbar

Die Heatmap-Karte des aktuellen Tests wird nur gerendert, wenn ihre aktuellen Tastenfehlerdaten Einträge haben.

KUMULIERT — typingSpeedTest_keyErrors

Bei der Initialisierung liest der Editor kumulierte Tastenfehler aus localStorage unter typingSpeedTest_keyErrors. Bei einem Solo-Ende werden aktuelle Fehler zusammengeführt und unter diesem Schlüssel geschrieben.

ZURÜCKSETZEN — Schlüssel entfernen

Die Heatmap-Zurücksetzung entfernt typingSpeedTest_keyErrors und leert den in der UI gezeigten kumulierten Zustand. Die kumulierte Karte wird nur bei Daten gerendert.

Solo-Protokoll und Zwei-Spieler-Panel

Die sichtbaren Modi verwenden getrennte Eingabezustände. Das Zwei-Spieler-Panel wird hier nur als UI mit zwei Eingaben beschrieben.

SOLO-VERLAUF — Höchstens fünf UI-Einträge

Ein Solo-Ende stellt sein Ergebnis mit [result, ...slice(0, 4)] voran. Dieser Verlauf ist React State für die UI.

SPIELER-EINGABEN — Getrennt nachgeführte Felder

Player 1 und Player 2 haben jeweils Eingabe-, Index-, korrekte-Zeichen-, Gesamtzeichen-, WPM- und Accuracy-Zustand.

ERGEBNISLABEL — WPM-Verzweigung

Bei einem Zwei-Spieler-Ende gewinnt Player 1 nur bei player1Wpm > player2Wpm; Player 2 nur bei umgekehrtem Fall; sonst lautet das Ergebnis tie.

Optionaler Pfad für öffentliche Ergebnisse

Nach einem Solo-Ende öffnet ein WPM-Wert über 20 einen Dialog. Das Namensfeld ist optional und hat vor der Sendeaktion maximal 100 Zeichen.

DIALOG — Optionaler Name und Sendeaktion

Der Dialog sendet die Solo-WPM, Accuracy, Dauer, Schwierigkeit, Sprache und bei Eingabe einen bereinigten Namen.

SERVER-EINGABE — Akzeptierte Feldgrenzen

saveScore akzeptiert ganzzahlige WPM ab 0, ganzzahlige Accuracy von 0 bis 100, eine ganzzahlige Dauer, Schwierigkeit beginner/intermediate/expert und eine Sprachzeichenkette bis 10 Zeichen; der Server fügt den gesendeten Datensatz ein.

ÖFFENTLICHE PUNKTELISTE — Abfrage Sprache + Schwierigkeit

Die Ergebnisabfrage filtert nach Sprache und Schwierigkeit. Die UI fragt limit 10 an; die Abfrage ordnet WPM absteigend und danach Accuracy absteigend.

Hinweise zum Umfang

  • Dieses Protokoll beschreibt die im aktuellen Code sichtbaren Editorpfade und Formeln.
  • Die Textauswahl ist arraybasiert und nutzt die angezeigte Sprache und gewählte Schwierigkeit.
  • Eine öffentliche Ergebnisübermittlung ist Nutzereingabe über den Ergebnispfad; diese Seite behandelt sie nicht als Verifizierung.
  • Die Ergebnisabfrage hat die genannten Filter, Reihenfolge und angeforderte UI-Grenze; diese Seite sagt nicht zu, ob ein Eintrag erscheint.

Mit benachbarten Tools fortfahren

Jedes verlinkte Tool hat eigene Steuerungen und einen eigenen Ergebnispfad.

  • Zufallsrad

    Einträge in einer separaten Radoberfläche setzen und das Auswahlpanel prüfen.

  • Münze werfen

    Die getrennte Münzoberfläche für ein Ergebnis mit zwei Seiten öffnen.

  • Sudoku

    Eine rasterbasierte Rätseloberfläche mit eigenen Steuerungen öffnen.

Fragen zum Sitzungsprotokoll

Welche Sitzungssteuerungen sind anfangs gewählt?

Die Startwerte sind 60 Sekunden, Schwierigkeit intermediate und Modus solo. Die Dauerauswahl bietet 30, 60 und 120 Sekunden; die Schwierigkeit bietet beginner, intermediate und expert.

Wie wird ein Text gewählt?

Für die gewählte Sprache und Schwierigkeit nimmt der Editor bei Initialisierung und Teststart einen Array-Eintrag mit Math.floor(Math.random() * texts.length).

Wie werden WPM, Accuracy und Fortschritt berechnet?

WPM ist round((correctChars / 5) / elapsedMinutes), wenn elapsedMinutes größer als 0 ist. Accuracy ist round((correctChars / totalChars) * 100), wenn totalChars größer als 0 ist. Fortschritt ist round(currentIndex / currentText.length * 100).

Was zeichnet die Heatmap auf?

Für ein neu hinzugefügtes Solo-Zeichen wird das erwartete Zeichen kleingeschrieben und gezählt. typedChar !== expectedChar erhöht dessen Fehlerzahl. Kumulierte Fehler verwenden den localStorage-Schlüssel typingSpeedTest_keyErrors; Zurücksetzen entfernt diesen Schlüssel.

Was sendet der Dialog für öffentliche Ergebnisse?

Nach einem Solo-Ende mit WPM über 20 kann der Dialog einen optionalen Namen bis 100 Zeichen zusammen mit den Ergebnisfeldern senden. Der Server akzeptiert die genannten ganzzahligen Grenzen und Enum-Werte und fügt den gesendeten Datensatz ein.

Tipp-Sitzungssteuerungen öffnen

Im Editor Dauer, Schwierigkeit und Modus wählen und anschließend die sichtbaren Zeichenzustände und Metriken prüfen.

Tippgeschwindigkeitstest öffnen