TYPE-RUN-TELEMETRIE / SESSIEREGISTRATIE

Lees een typsessie als sessieregistratie

Deze pagina koppelt duur, tekstselectie, tekencontroles, metriekformules, toetsenkaarttoestanden, tweespelerpaneel en het pad voor openbare scores aan de momenteel zichtbare editorcode.

Typsnelheidtest openen

Sessiebedieningsstrook

Vóór een run toont de editor drie selectors. Dit zijn editorinstellingen, geen labels over een persoon of diens typen.

  • DUUR — 30 · 60 · 120

    De duurselector biedt 30, 60 en 120 seconden. De beginwaarde is 60 seconden.

  • MOEILIJKHEID — 3 TEKSTSETS

    De selector biedt beginner, intermediate en expert. De beginwaarde is intermediate.

  • MODUS — SOLO · 2 SPELERS

    De editor begint in solo. Het andere zichtbare paneel is een tweespelermodus met afzonderlijke invoer.

Tekstbron en selectie

Tekstarrays zijn opgenomen voor elke getoonde taal en elke moeilijkheid. Bij initialisatie en opnieuw bij teststart gebruikt de editor Math.floor(Math.random() * texts.length) om één item uit de toepasselijke array te nemen.

Run-klok en eindpunten

De timer loopt terwijl een test gestart en niet voltooid is. Een run eindigt wanneer timeLeft === 0 of wanneer een invoer de lengte van de huidige tekst bereikt.

01 · SOLO — Startbediening gaat direct de run in

In solo-modus roept de Startbediening het startpad direct aan en focust daarna de solo-invoer.

02 · 2 SPELERS — 3 → 2 → 1 vóór invoer

In tweespelermodus start de Startbediening een 3–2–1-aftelling. Het startpad focust daarna de invoer van Player 1.

03 · EINDE — Nultijd of tekstlengtegrens

Het eindpad wordt bereikt bij timeLeft === 0, of wanneer een invoerlengte minimaal currentText.length is.

Meetpaneel per teken

Voor een invoer doorloopt de editor tekens per positie en vergelijkt elk teken met currentText op die positie. Overeenkomende posities tellen mee voor correctChars; totalChars is de invoerlengte.

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

    Wordt alleen berekend wanneer elapsedMinutes groter is dan 0.

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

    Wordt alleen berekend wanneer totalChars groter is dan 0.

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

    currentIndex volgt de lengte van de huidige invoer.

Toetsenkaart en toestandslog

Wanneer een nieuw toegevoegd solo-teken een verwacht teken heeft, wordt dat verwachte teken naar kleine letters omgezet en geteld. Een fout wordt geteld wanneer typedChar !== expectedChar.

HUIDIGE TEST — Alleen met gegevens getoond

De toetsenkaart van de huidige test wordt alleen gerenderd wanneer de huidige toetsfoutgegevens items bevatten.

CUMULATIEF — typingSpeedTest_keyErrors

Bij initialisatie leest de editor cumulatieve toetsfouten uit localStorage onder typingSpeedTest_keyErrors. Bij een solo-einde worden huidige fouten samengevoegd en onder die sleutel geschreven.

RESET — Sleutel verwijderen

De resetbediening verwijdert typingSpeedTest_keyErrors en wist de cumulatieve toestand die de UI toont. De cumulatieve kaart wordt alleen gerenderd wanneer gegevens bestaan.

Solo-registratie en tweespelerpaneel

De zichtbare modi gebruiken afzonderlijke invoertoestanden. Het tweespelerpaneel wordt hier alleen beschreven als UI met twee invoeren.

SOLO-GESCHIEDENIS — Maximaal vijf UI-items

Een solo-einde plaatst het resultaat vooraan met [result, ...slice(0, 4)]. Deze geschiedenis is React-state die in de UI wordt gebruikt.

SPELERSINVOER — Afzonderlijk bijgehouden velden

Player 1 en Player 2 hebben respectievelijke invoer-, index-, correcte-tekens-, totaaltekens-, WPM- en accuracy-state.

RESULTAATLABEL — WPM-tak

Bij een tweespeler-einde wint Player 1 alleen wanneer player1Wpm > player2Wpm; Player 2 alleen in het omgekeerde geval; anders is het resultaat tie.

Optioneel pad voor openbare score

Na een solo-einde opent een WPM-waarde boven 20 een dialoog. Het naamveld is optioneel en heeft maximaal 100 tekens vóór de verzendactie.

DIALOOG — Optionele naam en verzenden

De dialoog stuurt solo-WPM, accuracy, duur, moeilijkheid, taal en een getrimde naam wanneer die is ingevoerd.

SERVERINVOER — Geaccepteerde grenzen

saveScore accepteert gehele WPM van minimaal 0, gehele accuracy van 0 tot en met 100, gehele duur, moeilijkheid beginner/intermediate/expert en een taalstring van maximaal 10 tekens; de server voegt het verstuurde record in.

OPENBARE LIJST — Query taal + moeilijkheid

De scorequery filtert op taal en moeilijkheid. De UI vraagt limit 10; de query sorteert WPM aflopend en daarna accuracy aflopend.

Afbakeningsnotities

  • Deze registratie beschrijft editorpaden en formules die zichtbaar zijn in de huidige code.
  • Tekstselectie is arraygebaseerd en gebruikt de getoonde taal en gekozen moeilijkheid.
  • Een openbare scoreverzending is gebruikersinvoer via het scorepad; deze pagina behandelt die niet als verificatie.
  • De scorequery heeft de genoemde filters, volgorde en aangevraagde UI-limiet; deze pagina stelt niet dat een item zal verschijnen.

Ga verder met aangrenzende tools

Elke gekoppelde tool heeft eigen bediening en resultaatpad.

  • Gelukswiel

    Stel items in binnen een afzonderlijke wielinterface en bekijk het selectiepanel.

  • Munt opgooien

    Open de afzonderlijke muntinterface voor een resultaat met twee zijden.

  • Sudoku

    Open een rasterpuzzelinterface met eigen bediening.

Vragen over de sessieregistratie

Welke sessiebedieningen zijn aanvankelijk gekozen?

De beginwaarden zijn 60 seconden, moeilijkheid intermediate en modus solo. De duurselector biedt 30, 60 en 120 seconden; moeilijkheid biedt beginner, intermediate en expert.

Hoe wordt een tekst gekozen?

Voor de gekozen taal en moeilijkheid neemt de editor bij initialisatie en teststart een array-item met Math.floor(Math.random() * texts.length).

Hoe worden WPM, accuracy en voortgang berekend?

WPM is round((correctChars / 5) / elapsedMinutes) wanneer elapsedMinutes groter is dan 0. Accuracy is round((correctChars / totalChars) * 100) wanneer totalChars groter is dan 0. Voortgang is round(currentIndex / currentText.length * 100).

Wat registreert de toetsenkaart?

Voor een nieuw toegevoegd solo-teken wordt het verwachte teken naar kleine letters omgezet en geteld. typedChar !== expectedChar verhoogt zijn fout. Cumulatieve fouten gebruiken de localStorage-sleutel typingSpeedTest_keyErrors, en Reset verwijdert die sleutel.

Wat verstuurt de openbare dialoog?

Na een solo-einde met WPM boven 20 kan de dialoog een optionele naam van maximaal 100 tekens met de scorevelden versturen. De server accepteert de genoemde gehele grenzen en enumwaarden en voegt het verstuurde record in.

Open de typsessiebediening

Kies duur, moeilijkheid en modus in de editor en bekijk daarna de zichtbare toestanden per teken en metriek.

Typsnelheidtest openen