TELEMETRIA DI DIGITAZIONE / REGISTRO SESSIONE
Leggere una sessione di digitazione come registro
Questa pagina collega durata, selezione testo, controlli per carattere, formule delle metriche, stati della mappa tasti, pannello a due giocatori e percorso del risultato pubblico al codice visibile nell’editor.
- 30 / 60 / 120 secondi · iniziale 60
- beginner / intermediate / expert · iniziale intermediate
- solo / pannello due giocatori · iniziale solo
Striscia di controllo sessione
Prima di una sessione, l’editor espone tre selettori. Sono impostazioni dell’editor, non etichette su una persona o sulla sua digitazione.
- DURATA — 30 · 60 · 120
Il selettore offre 30, 60 e 120 secondi. Il valore iniziale è 60 secondi.
- DIFFICOLTÀ — 3 SET DI TESTI
Il selettore offre beginner, intermediate ed expert. Il valore iniziale è intermediate.
- MODALITÀ — SOLO · 2 GIOCATORI
L’editor inizia in solo. L’altro pannello visibile è una modalità a due giocatori con input separati.
Fonte e selezione del testo
Array di testi sono incorporati per ogni lingua mostrata e difficoltà. All’inizializzazione e di nuovo all’avvio del test, l’editor usa Math.floor(Math.random() * texts.length) per prendere una voce dall’array applicabile.
Orologio sessione e punti di uscita
Il timer avanza mentre un test è avviato e non concluso. Una sessione termina quando timeLeft === 0 o quando un input raggiunge la lunghezza del testo corrente.
01 · SOLO — Il controllo Avvia entra direttamente
In modalità solo, il controllo Avvia chiama direttamente il percorso di avvio e poi mette il focus sull’input solo.
02 · 2 GIOCATORI — 3 → 2 → 1 prima degli input
In modalità due giocatori, il controllo Avvia avvia un conto 3–2–1. Il percorso di avvio poi mette il focus sull’input Player 1.
03 · FINE — Tempo zero o limite del testo
Il percorso di fine è raggiunto con timeLeft === 0 oppure quando una lunghezza input raggiunge almeno currentText.length.
Pannello di misura per carattere
Per un input, l’editor percorre i caratteri per posizione e controlla ciascuno rispetto a currentText in quella posizione. Le posizioni corrispondenti contribuiscono a correctChars; totalChars è la lunghezza input.
- WPM — round((correctChars / 5) / elapsedMinutes)
Calcolato solo quando elapsedMinutes è maggiore di 0.
- ACCURACY — round((correctChars / totalChars) * 100)
Calcolata solo quando totalChars è maggiore di 0.
- PROGRESSO — round(currentIndex / currentText.length * 100)
currentIndex segue la lunghezza dell’input corrente.
Mappa tasti e registro di stato
Quando un carattere solo appena aggiunto ha un carattere atteso, il carattere atteso viene convertito in minuscolo e contato. Un errore è contato quando typedChar !== expectedChar.
TEST CORRENTE — Mostrato solo con dati
La scheda della mappa tasti del test corrente viene resa solo quando i suoi dati errori correnti hanno voci.
CUMULATIVO — typingSpeedTest_keyErrors
All’inizializzazione, l’editor legge errori tasti cumulativi da localStorage sotto typingSpeedTest_keyErrors. A una fine solo, gli errori correnti sono uniti e scritti sotto quella chiave.
REIMPOSTA — Rimuovi la chiave
Il controllo di reimpostazione rimuove typingSpeedTest_keyErrors e azzera lo stato cumulativo mostrato dalla UI. La scheda cumulativa viene resa solo quando esistono dati.
Registro solo e pannello due giocatori
Le modalità visibili usano stati input distinti. Il pannello due giocatori è descritto qui soltanto come UI con due input.
CRONOLOGIA SOLO — Al massimo cinque voci UI
Una fine solo antepone il risultato con [result, ...slice(0, 4)]. Questa cronologia è stato React usato nella UI.
INPUT GIOCATORE — Campi tracciati separatamente
Player 1 e Player 2 hanno stato rispettivo di input, indice, caratteri corretti, caratteri totali, WPM e accuracy.
ETICHETTA FINALE — Ramo WPM
A una fine due giocatori, Player 1 vince solo quando player1Wpm > player2Wpm; Player 2 solo nel caso inverso; altrimenti il risultato è tie.
Percorso facoltativo di risultato pubblico
Dopo una fine solo, un valore WPM oltre 20 apre una finestra. Il campo nome è facoltativo e ha massimo 100 caratteri prima dell’invio.
FINESTRA — Nome facoltativo e invio
La finestra invia WPM solo, accuracy, durata, difficoltà, lingua e un nome ripulito quando inserito.
INPUT SERVER — Limiti accettati
saveScore accetta WPM intero almeno 0, accuracy intera da 0 a 100, durata intera, difficoltà beginner/intermediate/expert e lingua fino a 10 caratteri; il server inserisce il record inviato.
ELENCO PUBBLICO — Query lingua + difficoltà
La query dei punteggi filtra per lingua e difficoltà. La UI richiede limit 10; la query ordina WPM decrescente e poi accuracy decrescente.
Note di ambito
- Questo registro descrive percorsi e formule dell’editor visibili nel codice corrente.
- La selezione testo è basata su array e usa lingua mostrata e difficoltà scelta.
- Un invio di risultato pubblico è input utente attraverso il percorso risultato; questa pagina non lo tratta come verifica.
- La query risultati ha filtri, ordine e limite UI indicati; questa pagina non dichiara che una voce apparirà.
Continua con strumenti vicini
Ogni strumento collegato ha controlli e percorso risultato propri.
- Ruota della fortuna
Imposta voci in un’interfaccia ruota separata e consulta il pannello di selezione.
- Lancia moneta
Apri l’interfaccia moneta separata per un risultato a due facce.
- Sudoku
Apri un’interfaccia puzzle a griglia con controlli propri.
Domande sul registro sessione
Quali controlli sono scelti inizialmente?
I valori iniziali sono 60 secondi, difficoltà intermediate e modalità solo. La durata offre 30, 60 e 120 secondi; la difficoltà offre beginner, intermediate ed expert.
Come viene scelto un testo?
Per lingua e difficoltà scelte, l’editor prende una voce array con Math.floor(Math.random() * texts.length) all’inizializzazione e all’avvio del test.
Come sono calcolati WPM, accuracy e progresso?
WPM è round((correctChars / 5) / elapsedMinutes) quando elapsedMinutes è maggiore di 0. Accuracy è round((correctChars / totalChars) * 100) quando totalChars è maggiore di 0. Il progresso è round(currentIndex / currentText.length * 100).
Cosa registra la mappa tasti?
Per un carattere solo appena aggiunto, il carattere atteso viene convertito in minuscolo e contato. typedChar !== expectedChar incrementa l’errore. Gli errori cumulativi usano la chiave localStorage typingSpeedTest_keyErrors e Reimposta rimuove quella chiave.
Cosa invia la finestra pubblica?
Dopo una fine solo con WPM sopra 20, la finestra può inviare un nome facoltativo fino a 100 caratteri insieme ai campi risultato. Il server accetta limiti interi e valori enum indicati e inserisce il record inviato.
Apri controlli sessione di digitazione
Scegli durata, difficoltà e modalità nell’editor, poi consulta gli stati per carattere e le metriche visibili.