swatmanjohn
96929b70c0
Fix stats engine bugs and add export/import
- Consistency formula: 100-sd/2 (was sd*2, too punishing)
- Net WPM clamped to 0 minimum
- Degenerate pool: ensure minimum 6 keys
- NaN guard: (weakKeys[c]||0) for untracked keys
- Export/import stats as JSON file
- Schema versioning (SCHEMA_VERSION=1)
- All features preserved: themes, games, gamification, code snippets
|
2026-08-17 10:42:03 -04:00 |
|
.gitignore
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
build_typeforge.py
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
keyball.html
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
keybr_tutor.html
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
keybr_tutor.py
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
open_keybr.py
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
server.py
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
typeforge.html
|
Fix stats engine bugs and add export/import
|
2026-08-17 10:42:03 -04:00 |
|
typewriter_game.py
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
typing-attack.html
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |
|
word-rush.html
|
Initial commit: TypeForge typing arcade and related files
|
2026-08-17 01:26:15 -04:00 |