Создание собственных уроков для GNU Typist

Подробное руководство по созданию и настройке уроков для клавиатурного тренажёра GNU TypistS

Создание собственных уроков для GNU Typist

Это руководство объясняет, как создавать собственные уроки для программы GNU Typist (gtypist). Уроки создаются с помощью простого скриптового языка, что позволяет легко их модифицировать и адаптировать под любые нужды .

Структура файла уроков

Файл уроков имеет расширение .typ и состоит из строк, каждая из которых начинается с однобуквенной команды, за которой следует двоеточие (:) и данные команды.

# Это комментарий. Строки, начинающиеся с '#', игнорируются.

*:НАЧАЛО         # Это метка. Она должна быть уникальной в файле.

B:Мой тренажёр    # Отображает баннер в верхней части экрана.

T:Это текст урока.   # Отображает текст и ждёт нажатия клавиши.
 :Это продолжение текста урока.

I:Краткая инструкция. # Отображает инструкцию перед упражнением.

D:asdf jkl;       # Упражнение-тренировка (drill). Нужно печатать в промежуточных строках.
 :qwer uiop

Основные команды

КомандаОписаниеПример
#Комментарий. Вся строка игнорируется.# Это комментарий
*Метка. Точка перехода для команд G, Y, N, F.*:УРОК_1
BBanner (Баннер). Очищает экран и отображает текст в верхней строке.B:Основы слепой печати
TTutorial (Урок). Отображает многострочный текст и ждёт нажатия любой клавиши для продолжения.T:Это обучающий текст.
:Он может занимать несколько строк.
IInstruction (Инструкция). Отображает до двух строк инструкции над упражнением. Не ждёт нажатия клавиши.I:Напечатайте строку ниже:
DDrill (Тренировка). Основное упражнение, где текст отображается в каждой второй строке, а пользователь печатает в промежуточных.D:aaa sss ddd fff
:jjj kkk lll ;;;
dPractice-only drill. То же, что и D, но пользователь не обязан повторять упражнение при большом количестве ошибок.d:тренировочный текст
SSpeed test (Тест скорости). Текст отображается на экране, и пользователь печатает поверх него. Ошибки можно исправлять, но они учитываются.S:Это предложение для теста скорости.
sPractice-only speed test. Аналогично S, но без обязательного повторения.s:Текст для практики.
GGo to label (Перейти к метке). Безусловный переход к указанной метке.G:СЛЕДУЮЩИЙ_УРОК
QQuestion (Вопрос). Отображает вопрос и ждёт ввода Y или N.Q:Повторить урок? (Y/N)
YYes (Да). Переход к метке, если на последний вопрос Q был дан ответ Y.Y:ПОВТОР
NNo (Нет). Переход к метке, если на последний вопрос Q был дан ответ N.N:СЛЕДУЮЩИЙ
MMenu (Меню). Создаёт меню для навигации.M: UP=ВЫХОД "Главное меню"
:УРОК_1 "Урок 1"
:УРОК_2 "Урок 2"
XExit (Выход). Завершает программу.X:
EError rate (Допустимый процент ошибок). Устанавливает максимальный процент ошибок для упражнения.E:5.0%
E:2.0%* (действует для всех последующих упражнений)
FFailure label (Метка при неудаче). Указывает метку, куда переходить при провале упражнения.F:ПОВТОР
F:ЗАВЕРШЕНИЕ* (действует для всех последующих упражнений)

Пошаговое руководство по созданию урока

1. Создание файла

Создайте новый текстовый файл с расширением .typ, например, moj_urok.typ.

2. Структура урока

Начните с комментария и баннера, чтобы придать уроку профессиональный вид.

# ==============================================
# Мой первый урок для gtypist
# ==============================================

B:Урок 1: Основы

3. Добавление обучающего текста

Используйте команду T для объяснения материала.

T:Этот урок научит вас печатать буквы 'а', 'о', 'и' и 'е'.
 :Начнём с простых упражнений.

4. Создание упражнений

Добавьте тренировки (D или d) и тесты скорости (S или s).

# Упражнение на буквы 'а' и 'о'
I:Напечатайте строки, используя указательные пальцы.
D:ао аоа оао ааа ооо
 :оао аоа аоо оаа

# Упражнение на буквы 'и' и 'е'
I:Теперь буквы 'и' и 'е'.
D:ие иеи еие иии еее
 :еие иеи иее еии

# Простой тест скорости
I:Тест скорости. Исправляйте ошибки!
S:Ехал грека через реку.
S:Видит грека в реке рак.

5. Добавление навигации и ветвления

Используйте метки, вопросы и переходы для создания структуры.

*:НАЧАЛО
T:Добро пожаловать!

*:УРОК_1
G:УПР_АО

*:УПР_АО
I:Упражнение на 'а' и 'о'.
D:ао аоа оао
G:ВОПРОС_АО

*:ВОПРОС_АО
Q:Повторить упражнение на 'а' и 'о'? (Y/N)
Y:УПР_АО
N:УРОК_2

*:УРОК_2
T:Переходим к следующему уроку.
# ... далее урок 2

6. Использование меню (рекомендуется)

Начиная с версии 2.7, для навигации удобно использовать команду M .

B:Мой тренажёр

*:ГЛАВНОЕ_МЕНЮ
M: UP=_EXIT "Главное меню"
 :УРОК_1 "Урок 1: А и О"
 :УРОК_2 "Урок 2: И и Е"
 :ВЫХОД "Выйти"

*:УРОК_1
G:УПР_АО

# ... определение УПР_АО ...

*:УРОК_2
# ... Урок 2 ...

*:ВЫХОД
X:

Это создаст удобное меню для выбора уроков.

Примеры и шаблоны

Вот пример простого файла moj_urok.typ, который включает все основные элементы:

# ==============================================
# Мой первый полноценный урок для gtypist
# ==============================================

*:ГЛАВНОЕ_МЕНЮ
M: UP=_EXIT "Меню"
 :УРОК_1_БУКВЫ "Урок 1: Буквы А,О,И,Е"
 :УРОК_2_СЛОВА "Урок 2: Слова"
 :ВЫХОД "Выйти"

# ----------------------------------------------
# Урок 1: Буквы А, О, И, Е
# ----------------------------------------------
*:УРОК_1_БУКВЫ
B:Урок 1
T:Этот урок научит вас печатать буквы 'а', 'о', 'и' и 'е' с помощью указательных пальцев.

*:УПР_АО
I:Напечатайте строки с буквами 'а' и 'о'.
D:ао аоа оао ааа ооо
 :оао аоа аоо оаа
Q:Повторить упражнение на 'а' и 'о'? (Y/N)
Y:УПР_АО
N:УПР_ИЕ

*:УПР_ИЕ
I:Теперь буквы 'и' и 'е'.
D:ие иеи еие иии еее
 :еие иеи иее еии
Q:Повторить упражнение на 'и' и 'е'? (Y/N)
Y:УПР_ИЕ
N:ТЕСТ_1

*:ТЕСТ_1
I:Тест скорости.
S:Ехал грека через реку.
S:Видит грека в реке рак.
Q:Повторить тест? (Y/N)
Y:ТЕСТ_1
N:ГЛАВНОЕ_МЕНЮ

# ----------------------------------------------
# Урок 2: Простые слова
# ----------------------------------------------
*:УРОК_2_СЛОВА
B:Урок 2
T:Теперь попробуем печатать простые слова.

*:УПР_СЛОВА
I:Печатайте слова.
D:мама папа мир
 :море рама
Q:Повторить? (Y/N)
Y:УПР_СЛОВА
N:ГЛАВНОЕ_МЕНЮ

# ----------------------------------------------
# Выход
# ----------------------------------------------
*:ВЫХОД
X:

Советы и лучшие практики

  1. Используйте комментарии: Начинайте строки с #, чтобы документировать свой код.
  2. Структурируйте уроки: Разбивайте обучение на логические части: введение, тренировка, тест, повторение.
  3. Используйте I для инструкций: Всегда давайте чёткие инструкции перед упражнениями.
  4. Начинайте с малого: Вводите новые буквы постепенно, тренируйте их в комбинациях с уже изученными.
  5. Автоматизируйте проверку: Используйте Q, Y, N для создания циклов повторения.
  6. Используйте меню (M): Это современный и удобный способ навигации.
  7. Изучите примеры: Посмотрите на файлы уроков, которые поставляются с gtypist (например, t.typ или ru.typ), чтобы увидеть, как устроены сложные уроки .

Запуск вашего урока

Чтобы запустить созданный урок, используйте команду:

gtypist /путь/к/вашему/файлу/moj_urok.typ

Если вы хотите начать с определённой метки (например, УРОК_2_СЛОВА), используйте опцию -l:

gtypist -l УРОК_2_СЛОВА moj_urok.typ

Инструменты для создания уроков

  • Режим Emacs (gtypist-mode.el): Предоставляет подсветку синтаксиса, автозаполнение, вставку баннеров и другие удобные функции для создания файлов .typ . Инструмент находится в tools/gtypist-mode.el .
  • Скрипт findwords: Помогает находить слова для упражнений, используя словари aspell. Например, ./findwords asdfjkleruio найдёт все слова, состоящие из этих букв. Находится в tools/findwords .
  • Конвертация из Ktouch: Скрипт ktouch2typ.pl позволяет конвертировать уроки из формата Ktouch 1.6 (XML) в формат gtypist. Это отличный способ начать создавать коллекцию уроков .