You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 689e4cd
Browse filesBrowse the repository at this point in the historyBrowse files
Track missed keys and add a Weak Keys practice category
Each run counts attempts and misses per expected character, and recorded
runs add them to typingGameKeyStats. The result dialog lists the keys
missed most in the run. The Weak Keys category draws common words that
contain the three letters with the highest miss rate (at least five
attempts each), and a result-dialog button switches to it.
Fixes#19.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ Open `index.html` in a browser, or serve the folder with any static file server.
15
15
-**Words mode**: type a fixed 10, 25, or 50 words. The clock counts up.
16
16
-**Categories**:
17
17
- Common Words (the default): 200 frequent English words in random order, never the same word twice in a row. Settings can add punctuation (capitalized sentences, commas, full stops) and numbers.
18
+
- Weak Keys: common words that contain the three letters you miss most often, by miss rate, among letters you have typed at least five times. Until there is enough data it uses all common words.
18
19
- Quotes: 50 passages, most of them opening lines of public-domain books.
19
20
- Technology: 50 quotes about programming and computing.
20
21
- Code Snippets: a mix of JavaScript, CSS, SQL, and shell lines.
@@ -28,7 +29,7 @@ Open `index.html` in a browser, or serve the folder with any static file server.
28
29
-**Caps Lock warning**: a notice above the text while Caps Lock is on.
29
30
-**Hard Mode**: blurs the characters you have already typed, so you cannot see your mistakes. The text ahead stays readable.
30
31
-**Ghost Mode**: records the timing of your best run and replays its position as a second cursor while you type.
31
-
-**Results**: a modal with your WPM and accuracy; raw WPM (all typed characters, right or wrong); correct and wrong character counts; elapsed time; whether the run set a new best for its settings, and the previous best; a line chart of WPM at the end of each second of the run; a line chart of your last ten runs at the current settings once you have two or more; and a Share button. The shared text has the WPM, accuracy, settings, and a link to the site. On touch devices it opens the system share sheet; elsewhere it copies to the clipboard.
32
+
-**Results**: a modal with your WPM and accuracy; raw WPM (all typed characters, right or wrong); correct and wrong character counts; elapsed time; whether the run set a new best for its settings, and the previous best; the keys you missed most in this run; a line chart of WPM at the end of each second of the run; a line chart of your last ten runs at the current settings once you have two or more; a Share button; and, once you have missed letters often enough, a button that starts a Weak Keys run. The shared text has the WPM, accuracy, settings, and a link to the site. On touch devices it opens the system share sheet; elsewhere it copies to the clipboard.
32
33
-**Sound**: short tones made with the Web Audio API for keypress, mistake, and completion. Can be turned off.
33
34
-**Keyboard**: Tab restarts while you are typing. Escape closes a dialog. Opening Settings during a run abandons the run.
34
35
-**Focus**: if the typing input loses focus, a hint appears over the text. Pressing a letter key moves focus back to the input.
@@ -46,6 +47,7 @@ Everything is stored in `localStorage` under these keys:
46
47
|`typingGameSettings`| mode, duration, word count, category, and the feature toggles |
47
48
|`typingGameHistory`| last 50 runs as `{wpm, accuracy, date, mode, key}`|
48
49
|`typingGameBests`| best WPM and its keystroke timings for each settings key, used by Ghost Mode |
50
+
|`typingGameKeyStats`| attempts and misses for each expected character across recorded runs |
49
51
50
52
A settings key combines mode, length, and category, for example `time:60s:common` or `words:25w:code`. Common Words with punctuation or numbers adds them to the category, as in `time:30s:common+punctuation+numbers`. Best scores, Ghost Mode, and the chart only compare runs with the same key. Runs that finish in under a second are shown but not saved.
0 commit comments