Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DP Typing Master

Тренажёр слепой печати для русской и английской раскладки. Без зависимостей — только Python и tkinter из стандартной библиотеки.

Запуск

python DP_Typing_Master.py

Если Python ругается на отсутствие tkinter, поставьте его отдельно: sudo apt install python3-tk (Debian/Ubuntu), sudo dnf install python3-tkinter (Fedora), sudo pacman -S tk (Arch). На Windows и macOS он входит в дистрибутив с python.org.

Как это работает

Отдельного поля ввода нет: вы печатаете прямо «в текст». Каждый символ подсвечивается по мере набора — набранное белым, ошибки красным, курсор синим блоком. Экранная клавиатура снизу показывает следующую клавишу и подписывает, каким пальцем по ней бить.

Режимы (F3)

Режим Что даёт
Уроки Ступени от центра домашнего ряда до полного алфавита. Каждая ступень строго включает предыдущую — пройденные клавиши не пропадают. При точности от 96% ступень повышается сама.
Частотные слова Реальная лексика языка: 1200 самых употребимых слов.
Псевдослова Несуществующие, но произносимые слова из марковской модели, обученной на той же лексике. Тренируют моторику, не давая угадывать слово по началу.
Слабые клавиши Тренажёр считает, на каких буквах вы ошибаетесь, и подбирает слова с ними. На практике даёт примерно втрое больше контакта с проблемными буквами, чем обычный режим.

Комбо

Счётчик подряд набранных без ошибки символов. Разбивается на уровни (разогрев → в потоке → разгон → огонь → легенда), каждое попадание даёт короткую вспышку, полоска показывает путь до следующего уровня. Ошибка обнуляет комбо; стереть и перенабрать символ, чтобы накрутить счётчик, не получится.

Горячие клавиши

Клавиша Действие
Esc пропустить фразу
Tab эту же фразу заново
F1 справка
F2 русский / английский
F3 режим тренировки
F4 / Shift+F4 ступень урока вперёд / назад
F5 строгий режим — не пускает дальше, пока символ не набран верно
F6 показать / скрыть экранную клавиатуру
F7 сбросить накопленную статистику
Ctrl+Q выход

Прогресс, рекорды и статистика по буквам сохраняются между запусками (~/.config/dp-typing-master/profile.json или аналог для вашей ОС).

Метрики

Точность считается по нажатиям, а не по итоговому тексту: опечатка, исправленная бэкспейсом, остаётся в статистике. Скорость измеряется от первого нажатия до последнего и ограничена сверху 1500 знаков/мин — всё, что выше, это вставка из буфера, а не человек. Время берётся с монотонных часов, поэтому синхронизация системного времени не искажает результат.

Разработка

pytest                      # логика: работает без дисплея
xvfb-run -a pytest          # плюс интеграционные тесты на настоящем Tk
ruff check . && flake8 .

Логика (engine.py, words.py, layout.py, storage.py) не импортирует tkinter и проверяется headless. Интерфейс (app.py) покрыт отдельными тестами, которые поднимают реальное окно и стучат по нему клавишами; без дисплея они пропускаются.

Замеренное на настоящем Tk: стоимость одного нажатия не зависит от длины фразы (при удлинении текста в 26 раз — ×0.94), тогда как перебор всей строки на каждое нажатие рос бы в ×7.1. В покое очередь отложенных задач пуста — это проверяется тестом.

Требуется Python 3.9+; проверено на 3.10, 3.11, 3.12 и 3.13.

Лицензия

GPL-3.0-or-later, см. LICENSE. Происхождение словарей описано в dp_typing/data/SOURCES.md.

About

Simple Blind Typing Trainer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages