Матчи и запись

Панель матчей

Панель Матчи (CTRL-Tab) содержит список импортированных матчей. Дважды щёлкните на матче (или нажмите ENTER) для навигации по его ходам. Команда m возобновляет навигацию по последнему посещённому матчу.

Поле фильтра в верхней части панели (/ — перейти, Esc — очистить) оставляет только матчи, в которых игрок, событие, место, турнир или дата содержит введённый текст. Фильтрацию и сортировку столбцов выполняет база данных: список подгружается страницами при прокрутке, а счётчик «n / N матчей» показывает загруженную часть. Исправление игрока, даты или турнира в списке обновляет только изменённую строку.

Когда список пуст, панель предлагает Импорт… (Ctrl+I); если база данных не открыта, вместо этого она предлагает Открыть базу данных… вместе с Назад на экран приветствия. Если список опустошил текстовый фильтр, предлагается Сбросить фильтр. Пустые панели Stats, Коллекции и Anki предлагают те же кнопки.

Пользователь может:

  • просматривать ходы матча с помощью клавиш ВЛЕВО и ВПРАВО,

  • переключаться между партиями с помощью клавиш PageUp и PageDown,

  • отображать анализ ходов (шашки и куб) нажатием CTRL-L,

  • переключаться между анализом ходов шашками и куба клавишей d,

  • видеть фактически сыгранный ход, выделенный в анализе,

  • искать среди позиций матча командой ss (напр.: ss E>80); затем Esc возвращает к изучаемому ходу (см. Панель поиска).

Последняя посещённая позиция в каждом матче запоминается и восстанавливается автоматически. Нажмите CTRL-Tab или выполните команду match для отображения или скрытия панели.

Кнопка ⊕ в строке дополняет этот матч из файла. За ней нет ничего нового: повторный импорт того же матча в другом формате уже дополняет его на месте — каноническая свёртка узнаёт, что это тот же матч, и анализы и комментарии второго файла дополняют первый. Кнопка добавляет лишь то, что её находят: никто не догадывается, что импорт — это ещё и дополнение. Следующий отчёт говорит, что именно произошло: «дополнено: 1», а не «импортировано: 1».

Каждый матч можно экспортировать как транскрипцию Jellyfish .mat кнопкой ⬇ в списке матчей или пунктом Экспорт .mat меню ⋯ карточки матча.

Щелчок по матчу открывает его карточку. Строка заголовка даёт игроков, итоговый счёт (победитель выделен жирным, его имя видно при наведении), длину, контроль времени, если он есть, и дату; турнир, раунд и место показываются при наведении. Справа находятся значок 🎞 матча с видео, кнопка Разбор и меню ⋯, в котором есть Экспорт .mat, Править запись и Удалить матч. Далее идёт сводка итога матча, затем панель вкладок: Запись, которая перечисляет ходы партия за партией (щелчок по ходу переносит туда разбор), Графики, К разбору, Подробности, Информация и Статистика. Выбранная вкладка занимает всю оставшуюся высоту панели и прокручивается сама, заголовок и сводка остаются на месте; когда вкладка в фокусе, стрелки влево и вправо переходят к предыдущей или следующей. Вкладка, оставленная открытой, остаётся открытой и в следующем матче. Вкладка без содержимого не показывается: у матча без анализа нет ни вкладки К разбору, ни вкладки Подробности, у матча без известной потери или длительности нет вкладки Графики.

Карточка матча, вкладка Графики

Карточка матча: заголовок, сводка итога по игрокам, затем вкладка Графики с решением под курсором.

Каждый ход транскрипции несёт свою тяжесть: ? для ошибки, ?? для бландера, цветная полоса на краю строки и цена хода в эквити при наведении на отметку. Пороги — это пороги самой базы (Конфигурация), те же, по которым считает статистика. Ход оценивается так, как он был сыгран: одна и та же позиция, сыгранная в матче дважды, получает две оценки. Ход, который анализ не оценивает, не несёт никакой отметки.

Заголовок каждой партии считает её отметки, развёрнута она или нет: не открывая её, видно, в какой партии находятся бландеры. Щелчок по числу загружает эти позиции в панель анализа.

Когда матч проанализирован, в транскрипции появляется столбец MWC: шансы выиграть матч, которые стоило решение, в процентах: 0 для решения без потери, прочерк для решения, которое анализ не оценивает или счёт которого не имеет значения в таблице эквити матча (игра на деньги, решение вне статистики). Щелчок по заголовку MWC упорядочивает ходы каждой партии от самой тяжёлой потери к самой лёгкой, затем в обратном порядке, затем возвращает порядок матча; неоценённые решения идут последними, и эта сортировка заменяет сортировку по длительности. Вкладка Графики показывает два графика во всю ширину на оси решений графика длительностей: по столбцу на решение, затем накопленная потеря каждого игрока, которая останавливается на его итоге (сплошная линия для первого игрока, пунктирная для второго). У каждого графика есть заголовок, легенда, шкала слева и под осью номер каждой партии (П1, П2…); пунктирная линия отмечает переход от одной партии к следующей. Неоценённое решение несёт небольшую отметку у основания столбца, без высоты. Наведение на решение или перебор решений стрелками (клавиши Home и End ведут к краям) отмечает его на всех графиках и на его строке транскрипции, а подсказка показывает партию, ход, игрока и потерю; подсказка размещается с той стороны, где она целиком помещается в рамке графика, даже в узкой панели. Щелчок или Enter переносит туда просмотр. То же верно для графика длительностей. В легенде каждого графика имя каждого игрока является флажком (с клавиатуры и мышью): снятие флажка скрывает его отметки на всех трёх графиках, так как настройка общая, а наведение, щелчок и стрелки попадают теперь только на решения другого игрока (щелчок выбирает ближайшее видимое решение). Последнего отмеченного игрока снять нельзя, и каждый матч открывается с отмеченными обоими игроками. Вне интерфейса match --format json добавляет decision_losses (одна запись на ход, mwc_loss равно null для неоценённого хода), --format text строку «MWC loss» на оценённый ход, а --format summary итог по игрокам.

Сложность и избегаемые ошибки. Потеря говорит, во что обошёлся ход, но не о том, было ли трудно найти правильный. Столбец Сложн., рядом с MWC, показывает сложность решения: потерю шансов выиграть матч, которую эталонный игрок в среднем понёс бы в той же позиции. Этот эталонный игрок играет не безупречно: он выбирает каждый вариант с тем меньшей вероятностью, чем дороже он обходится, π(i) пропорциональна exp(−Δᵢ/τ), где Δᵢ — цена варианта i относительно лучшего, в нормализованном эквити. Сложность равна d = Σ π(i)·Δᵢ, пересчитанной в MWC по счёту и кубу решения, как и потеря: она выражается в той же единице, в процентах шансов выиграть матч. Варианты — это кандидаты анализа для хода шашками; не удваивать и удваивать (против лучшего ответа) для игрока, у которого куб; принять и отказаться для игрока, получающего удвоение. Температура τ равна 0,025: самое трудное решение с двумя вариантами — то, у которого разрыв около 0,032, а позиция с пятью кандидатами на расстоянии 0,01 друг от друга даёт среднюю ошибку игрока примерно PR 6; это априорная оценка сильного игрока, заданная до изучения каких-либо результатов.

Как читать: очевидное или вынужденное решение имеет сложность, близкую к 0, без какого-либо порога, который выделял бы его; напряжённое решение, где несколько вариантов лежат в пределах нескольких тысячных, имеет большую. Потеря, намного превышающая сложность, — ошибка, которую позиция не оправдывала; потеря, близкая к сложности, — ошибка, которую сделал бы и хороший игрок. Решение — избегаемая ошибка, отмеченная ! рядом с потерей и точкой над столбцом, когда его потеря достигает порога ошибки базы, а сложность не превышает его десятой части: в решении с двумя вариантами эталонный игрок не совершил бы её и раза из десяти. На графике по решениям сложность — горизонтальная черта на каждом столбце: столбец, поднимающийся далеко над своей чертой, указывает на избегаемую ошибку.

Таблица вкладки Подробности даёт для каждого игрока его суммарную потерю MWC (ту, что в списке матчей), число оценённых решений и, по решениям, у которых есть потеря и сложность: общую сложность, превышение Σ(потеря − сложность), в MWC, то есть сколько игрок потерял сверх эталонного игрока (отрицательное, когда он сыграл лучше), отношение общая потеря / общая сложность (1: он играет как эталонный игрок; 2: он теряет вдвое больше) и число избегаемых ошибок. Отношение не приводится, когда общая сложность ниже 0,5 %: в слишком лёгком матче оно измеряло бы лишь шум, превышение остаётся.

Зачем на неё смотреть: PR и потеря MWC смешивают две вещи, качество игры и сложность встретившихся позиций. Соперник, создающий сложные позиции, повышает ошибку другого; матч чистой гонки её понижает. Сложность исправляет оба эффекта: превышение и отношение сравнивают игрока с тем, чего можно было ожидать в его позициях. Для обучения она сортирует ошибки: избегаемые ошибки — это невнимательность или плохо усвоенное правило, их стоит пересмотреть первыми, и часто их легко исправить; потери в трудных решениях относятся к фундаментальной работе (роллауты, принципы, эталонные позиции) и меньше влияют на оценку матча.

Неопределённость и пределы: сложность зависит от модели игрока и от τ, заданных один раз; изменение любого из них меняет все цифры. Она знает только кандидатов, которые сохранил анализ (несколько в XG, в зависимости от фильтров в GNU Backgammon): отсутствующие варианты ничего не весят, и тогда сложность является нижней оценкой. Она наследует ошибку самого анализа, особенно при малой глубине. В одном матче превышение и отношение опираются на немного решений и сильно меняются от матча к матчу: они показывают тенденцию, а не рейтинг. Сложность вычисляется только для решений, потеря которых оценена; в остальных случаях стоит прочерк. Вне интерфейса match --format json содержит difficulty и avoidable в каждой записи decision_losses и сводку по игрокам в difficulty_summary; --format text добавляет строки «Difficulty» и «Avoidable error», --format summary — сложность, превышение, отношение и число избегаемых ошибок.

Итог матча. Итог отвечает для каждого игрока на три вопроса, которые задают себе после матча: что мне пересмотреть, проиграл ли я из-за костей или из-за игры, и откуда мои ошибки — от спешки или от пробела в знаниях? Пороги были зафиксированы до просмотра каких-либо результатов.

В начале карточки, над вкладками, сводка располагает игроков рядом (один под другим, когда панель узкая): имя с линией, которая обозначает его на накопительном графике, PR, потеря MWC в матче и, для завершённого матча, вердикт удачи простыми словами («выигран игрой», «проигран из-за кубиков»…), за которым следует только скорректированный результат. Наведение на PR показывает его интервал, на вердикт — составляющие скорректированного результата. Остальное распределено между двумя вкладками: Подробности даёт интервалы, потерю, приведённую к 7 очкам, и удачу; К разбору — решения к разбору и распределение ошибок на поспешные и обдуманные:

  • PR и потеря MWC в пересчёте на 7 очков с их 95 % интервалом, вычисленные ресэмплированием партий матча. Потеря в пересчёте на 7 очков — это потеря матча, приведённая к шкале матча до 7 очков (L₇, см. Метрики и инструменты для изучения): она служит для сравнения матчей разной длины, тогда как сводка показывает только потерю самого матча. Нужно три партии; более короткий матч показывает прочерк. Широкий интервал означает, что одного матча недостаточно для оценки уровня: сравнивайте его с другими своими матчами, а не делайте вывод по одному значению.

  • Результат с поправкой на удачу для завершённого матча. Результат — это исход (100 % выигран, 0 % проигран) минус шансы на старте (50 % при 0-0); чистая удача складывает удачу ваших бросков минус удачу бросков соперника, каждый бросок переводится в MWC при счёте и кубе своей позиции, как потеря. Результат с поправкой — это результат минус чистая удача. Если он положителен в проигранном матче, решили кости; отрицателен — игра. Разница ошибок (потеря соперника минус ваша) — то, что оценивает результат с поправкой: две цифры совпадают, когда удача учтена полностью. Покрытие указывается, когда у некоторых бросков нет измеренной удачи (файл без удачи, непроанализированный бросок); без единого измеренного броска, а также для игры на деньги строка не появляется.

  • Три решения для пересмотра: среди ваших ошибок (порог базы) те, у которых устранимая часть потери, потеря − сложность, наибольшая — то есть потеря, умноженная на её устранимость. Ошибка, которую сделал бы и эталонный игрок, не стоит занятия: сначала пересматривают то, что было в пределах досягаемости. Щелчок по решению открывает его, как строку выписки.

  • Поспешные и обдуманные ошибки, когда матч сохранил длительность решений: ошибка, сыгранная быстрее медианы ваших решений того же типа (фишки или куб) в этом матче, поспешная, остальные обдуманные. Медиана ваша, в этом матче: она не зависит от темпа, и без связи между скоростью и ошибкой ошибки делились бы пополам. Поспешное большинство требует дисциплины (замедляться в таких позициях); обдуманное — знаний (изучать семейство позиций).

Вкладка Подробности завершается таблицей потерь и сложности, описанной выше. match --format summary печатает тот же итог, а сервер отдаёт его через /v1/stats.matchReview.

Если матч сохранил длительность своих решений (матч против бота), в транскрипции появляются три столбца, выровненных по цифрам: Куб (решение по кубу, принятое до броска или в самой строке куба), Игра (ход фишками) и Часы, время, которое игрок, чей ход, израсходовал с начала матча, включая этот ход, независимо от сортировки. При контроле времени столбец превращается в Остаток часов и показывает время, оставшееся на часах игрока после хода, рассчитанное так, как его считает арбитр Дуэли (задержка на ход, запас обнуляется при превышении). Информация о матче и его заголовок напоминают о контроле времени (пресет, задержка, поведение при превышении) и о банке времени каждого игрока, приведённом к стартовому счёту, когда запас считается на оставшееся очко. Щелчок по заголовку Игра упорядочивает ходы каждой партии от самого долгого к самому короткому, затем от самого короткого к самому долгому, а затем возвращает порядок матча; ячейка без длительности (нет решения по кубу в этот ход или ход, сделанный одним арбитром) содержит тире, и такие ходы идут последними. Часы начинаются с нуля с первого хода. Вкладка Графики начинается со сводки, которая даёт для каждого игрока итог, среднее на ход фишками и на решение по кубу и, если у матча есть контроль времени, отметку игрока, у которого запас закончился первым (Дуэль записывает только его); график показывает длительность каждого решения по ходу матча. При разборе длительность сыгранного решения незаметно показана под анализом. Поиск фильтрует её по tm>30 (в секундах), что сочетается с E>x: s tm>30 E>80 оставляет ходы, над которыми долго думали и которые всё равно оказались ошибочными, причём длительность и ошибка относятся к одному и тому же ходу. Вкладка Статистика под повторяющимися ошибками сопоставляет время и ошибку: для каждого игрока и каждой полосы известной длительности (меньше 5 с, от 5 до 15 с, от 15 до 30 с, больше 30 с) число решений, средняя ошибка и доля блундеров. Решение без сохранённой ошибки считается, но в среднее не входит.

Столбец Позиции считает различные позиции этих решений и открывает их щелчком. Таблица и её ссылки читают все хронометрированные решения базы, без фильтра панели.

Матч, сыгранный здесь в рамках Дуэли, показывает своё происхождение на вкладке Информация своей карточки, под заголовком Происхождение, в одной строке, даже если в нём нет ни одного хода: «Сыграно здесь», затем, если применимо, «Проиграно по времени» с игроком, чей резерв исчерпался при контроле времени, по которому матч проигрывается, или «Остановлено до конца» для Матча, который остановленная Дуэль оставила незавершённым, контроль времени, игрок, чей резерв исчерпался первым, и уровень бота с версией gammonNet, чью стратегию он играл. Щелчок раскрывает начало (начальную позицию или выбранный XGID), раскрытый сид костей и его SHA-256, который нужно сравнить с отпечатком, опубликованным при создании Дуэли: если они совпадают, сид позволяет пересчитать каждый бросок, не доверяя blunderDB. У матча, сыгранного не здесь, происхождения нет, и на его вкладке Информация этого заголовка нет.

Вкладка Информация карточки матча повторяет заголовок матча. Она добавляет то, что исходный файл говорит об игроках и сессии, если говорит, — файл eXtreme Gammon говорит всегда: рейтинг Эло каждого игрока с опытом в скобках, транскрибировавшего, правила Джекоби и Бобра денежной игры и программу, записавшую файл. Эти сведения экспортируются вместе с матчем. Повторный импорт уже имеющегося файла передаёт их матчу, у которого их не было, ничего не заменяя из того, что у него уже есть. Команда match командной строки тоже их показывает. Комментарии заголовка и окончания матча из файла eXtreme Gammon становятся комментарием матча, подписанным именем его составителя, или XG, если файл его не называет; часы и таблица эквити не импортируются. Карточка показывает этого автора рядом с комментарием, и экспорт копирует его вместе с ним; изменённый комментарий подписывается именем из Ваше имя (настройки).

В строке Исходный файл есть кнопка ⟲, когда матч называет файл: она перечитывает этот файл и переписывает позиции, анализ и ошибки матча как при новом импорте, сохраняя всё, что было введено с тех пор (турнир, имена, перестановку игроков, комментарии, транскрипцию, видео и метки) и анализ глубже файлового. Матч, соответствующий своему файлу, сообщает об этом в строке состояния; иначе подтверждение показывает число ходов, позиция которых меняется, и долю проанализированных ходов до и после; затем строка состояния сообщает число комментариев, оставшихся на позиции, которую держит коллекция, карточка или урок. Восстановление отклоняется, если файл не найден, больше не содержит этот матч или если по его ходам нельзя понять, какой игрок файла какой. Команда match repair делает то же самое, а match repair --list находит матчи, отличающиеся от своего файла.

Матч, расшифрованный по видео, хранит свой источник: URL http(s) (например, YouTube) или путь к файлу. Строка Видео в разделе Информация изменяет его: введите URL или путь и нажмите ВВОД, Файл… выбирает видео, Отвязать убирает источник. Матч с источником показывает значок 🎞 в заголовке своей карточки, а каждое решение с отметкой видео показывает тот же значок в своей строке транскрипции. Щелчок по значку или клавиша v, когда решение является просматриваемым, переводит видео за секунду до броска костей: для файла видео открывается рядом с доской или над карточкой, если его вернули в панель, а [ и ] задают его скорость; для источника YouTube браузер открывает ссылку с отметкой времени. Отсутствующий файл переназначается из области видео, а формат, который webview не воспроизводит, обозначается там вместе с пакетами для установки (см. Загрузка и установка). Матч без источника не меняется.

Кнопка Управление игроками на панели инструментов этой панели открывает окно со списком всех игроков в базе; для каждого указаны число его матчей (щелчок по числу показывает его матчи на панели) и его псевдонимы. Чтобы объединить, выберите варианты написания одного и того же игрока, укажите каноническое имя для сохранения (набрать его или щёлкнуть ✓ в его строке), затем объедините. Окно остаётся открытым для следующих объединений; Закрыть (или Esc) закрывает его. Объединение создаёт по одному псевдониму на вариант: матчи сохраняют имена из своих файлов, но статистика, таблица Игроки и поиск pl"…" читают все варианты как одного игрока, а следующие импорты записывают каноническое имя. Щелчок по псевдониму (×) удаляет его и отменяет объединение, как на вкладке Корпус настроек.

Звезда (☆) в строке назначает основного игрока, которому принадлежит база; он запоминается в базе и всегда стоит в начале списка. Она закрашивается сразу и показывает число матчей, где он игрок 2 (по ней можно щёлкнуть, чтобы их увидеть), затем Переставить переставляет их все за один раз: если одна перестановка не удалась, ни один матч не переставляется. Каждый переставленный матч сохраняет свои анализы, ошибки, комментарии, видеометки, транскрипцию и турнир. Основной игрок распознаётся под всеми своими псевдонимами, и каждый следующий импорт, в любом формате, ставит его игроком 1, как завершённая транскрипция; матч, сыгранный против gammonNet, сохраняет свои места. Матч с открытым черновиком транскрипции или сыгранный в blunderDB не переставляется: их число указывается отдельно.

Объединение, затрагивающее основного игрока, — псевдоним, добавленный к его имени, или его имя, объединённое с другим, которое его обозначает, — само ничего не переставляет: баннер возвращается с матчами, которые оно оставляет для перестановки, чтобы подтвердить их кнопкой Переставить или отклонить кнопкой Снять, которая снимает основного игрока. Пока такие матчи остаются, щелчок по закрашенной звезде (★) снова открывает этот баннер; иначе он снимает основного игрока, ничего не переставляя обратно.

Когда матч открыт, над доской появляется информационная панель: она напоминает об играющих сторонах (игрок 1 против игрок 2), а также о контексте матча (событие, место, раунд, дата и длина матча, если эти сведения доступны). Эта панель отображается и вне режима матча: когда изучаемая позиция (полученная из поиска, коллекции или прямого доступа) происходит из одного или нескольких матчей, она указывает её происхождение — первый соответствующий матч и, при необходимости, бейдж «+N», перечисляющий остальные при наведении. Позиция, импортированная отдельно и не связанная ни с одним матчем, ничего не показывает.

Вкладки Поиск и Eval заменяют доску рабочей доской: баннер над доской сообщает об этом («Доска поиска», «Доска оценки»), а информационная панель скрывается, пока она описывала бы позицию, которой нет на экране. Возврат к анализу восстанавливает изучаемую позицию.

При открытии базы данных, содержащей матчи, панель Матчи отображается сразу же, а разбор начинается прямо с первой позиции, чтобы можно было немедленно приступить к навигации.

Примечание

Базу данных можно открыть на запись только в одном окне одновременно. Если вы открываете базу, уже открытую в другом окне blunderDB, она открывается в режиме только для чтения: навигация, поиск и анализ остаются возможными, но любые изменения отключены, а в строке заголовка отображается «[только чтение]».

Совет

Смотрите Горячие клавиши для доступных горячих клавиш.

Панель записи

Панель Запись (CTRL-SHIFT-T, команда transcribe или tr) служит для набора матча, который перед вами — бланка матча, видеозаписи, — чтобы сделать из него матч библиотеки. То, что набирается, — это черновик: он живёт в базе, закрывается и открывается снова и не попадает ни в статистику, ни в поиск, пока не сохранён как матч.

Панель открывается списком черновиков базы: последнее изменение, игроки, длина матча, число действий и уже созданный матч (# и его идентификатор) либо пометка «нет матча». Щелчок открывает черновик, а кнопка Черновики на панели возвращает к списку. Кнопка Новая транскрипция раскрывает форму создания.

Список проходится и с клавиатуры: ВНИЗ и ВВЕРХ (или j и k) двигают подсветку, ВВОД открывает подсвеченный черновик, n раскрывает форму. Первый черновик подсвечен при открытии, и это самый недавно изменённый: возобновить вчерашнюю работу стоит, таким образом, двух клавиш — CTRL-SHIFT-T, затем ВВОД.

Форма спрашивает одно: длину матча. Значение 0 означает партию на деньги и открывает флажки Jacoby и Beaver. Поле открывается с длиной последнего изменённого черновика или со значением 7, если в базе нет ни одного. Имена игроков не запрашиваются: черновик называет стороны Игрок 1 и Игрок 2, а список показывает «Без названия».

Всё, что выводится из набранного, — длина матча (или «Деньги»), счёт, пометка Кроуфорд, когда текущая партия такова, номер партии, состояние куба (его значение, по центру или на имя владельца) и сторона, которая ходит, — показывается на строке матча над доской: именно туда уже направлен взгляд, когда спрашиваешь себя, чей ход. Ожидаемое же действие написано словами в строке состояния: «кости Кевина», «ответ Алисы на дубль».

Панель черновика в верхней части панели читается тремя группами. Слева Черновики возвращает к списку. В центре то, что нужно при вводе: ориентация доски, две стрелки отмены, Видео и Метаданные. Справа жесты, которые выводят черновик из него самого, и меню ⋯. В узкой панели ввод переходит на вторую строку.

Игрок 1 остаётся внизу доски, кто бы ни был на ходу. Транскрибируемый матч — это разворачивающаяся партия: ход переходит при каждом полуходе, и следовать за ним значило бы переворачивать доску от хода к ходу — только что рассмотренные шашки уходили бы наверх, и глаз проделывал бы путь заново при каждом броске. Кто на ходу, читается по кубикам, которые меняют сторону. Кнопка ⇅ на панели переворачивает доску и показывает игрока 2 внизу; она не изменяет черновик, и при закрытии отображение возвращается в исходное положение. Не путать с кнопкой Поменять игроков в разделе метаданных, которая меняет местами двух игроков в самом документе.

Кнопка Метаданные на панели в любой момент раскрывает заголовок черновика: имена обоих игроков — с автодополнением из игроков базы, — событие, место, раунд, дату (по умолчанию сегодняшнюю), расшифровщика (по умолчанию пользователя базы) и турнир, к которому матч будет привязан при сохранении; если поле пусто, новый матч, как при импорте, попадает в турнир, названный по его событию. Ни одно поле не обязательно: черновик без имён так же сохраняется и экспортируется, с пустыми заголовками. Кнопка Поменять игроков местами меняет местами оба имени, передаёт все действия противоположной стороне и переворачивает доску: это тот же матч, прочитанный с другой стороны.

В открытом виде форма занимает место ввода: кости, палитра и кандидаты скрыты, запись остаётся видимой, видео остаётся на месте. Та же кнопка или Esc возвращает ввод.

Длину матча можно изменить в той же панели в любой момент: счёт, игра Кроуфорда и система отсчёта — игра на деньги, если длина равна 0, и тогда появляются флажки Jacoby и Beaver — пересчитываются от начала до конца черновика, а действия, записанные после победы, помечаются как «после конца», причём ни одно из них не удаляется. Длина входит в идентичность позиции: если после сохранения изменить её и сохранить снова, будут записаны совершенно новые позиции, требующие анализа, а старые исчезнут, как только их больше ничто не удерживает.

Под панелью черновик занимает три области: палитру мишеней для мыши, ходы-кандидаты и запись. Они располагаются по ширине вкладки. В широкой вкладке — нижнем доке — все три стоят рядом, палитра слева. В средней вкладке кандидаты занимают верх, а запись встаёт рядом с треугольником бросков, в том месте, которое он оставляет справа от себя. В узкой вкладке все три следуют друг за другом: кандидаты, палитра, запись — там треугольник и запись не помещаются рядом, не отрезав у записи второй столбец, и достаточно расширить док на несколько десятков пикселей, чтобы свести их вместе. Во всех случаях правило одно: между двумя клетками броска и первой строкой кандидатов ничего не вклинивается, и не менее пяти кандидатов читаются без всякой прокрутки.

Палитра показывает обе кости по мере их ввода; щелчок по ним стирает их, как BACKSPACE. Партия начинается с первого хода, который делает победитель стартового броска: две его кости набираются как этот бросок — кость игрока 1, затем кость игрока 2, и бо́льшая отдаёт ход своей стороне, которая играет обе кости. Затем ход выбирается среди кандидатов, как любой другой. Равные броски, перебрасываемые за столом, не записываются; первый ход, набранный дублем, записывается как есть и отмечается «несогласованные кости», поскольку стартовый бросок дублем не бывает, а дабл куба до первого хода отмечается «невозможное действие куба». Действие с кубом, записанное после конца партии, получает ту же отметку: оно остаётся в завершённой партии, не открывает новую и удаляется вручную.

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

Бросок без единого допустимого хода сам записывает танец: ход переходит к сопернику без хода для ввода. Когда сам бросок неважен, клавиша f лишь сообщает, что игрок на ходу не входит: она вводит первый бросок, сначала не дубли, при котором он не входит с бара. Без шашки на баре, или перед домом, пропускающим любой бросок, она ничего не вводит, и строка состояния сообщает об этом.

Колесо выбирает следующего или предыдущего кандидата — как над списком, так и над доской: взгляд остаётся на доске, а стрелки прокручиваются, что узнаёт ход быстрее, чем чтение его нотации. Щелчок по строке выбирает её, двойной щелчок подтверждает.

Индикатор слева от ячеек броска — и на панели режима кинотеатра — показывает, что делает нажатие клавиши в данный момент: Ввод в конце документа, Правка хода N на уже записанном действии, затем ход, который подтверждает ENTER, и действие цифр. Ни одна клавиша не заблокирована: на записанном действии, как и в конце, j/k и стрелки выбирают строку анализа, доска играет, а цифры набирают кости. В режиме «Ввод» предвыбранная строка — первая в анализе — рисуется на доске, и цифры следующего броска записывают её перед открытием следующего решения. На записанном действии цифры заново набирают его бросок на месте, а ENTER подтверждает исправление: курсор затем переходит к следующему решению, и последующие позиции пересчитываются. End возвращает в конец документа.

Треугольник из двадцати одного броска расположен под двумя клетками броска, рядом с клавиатурой, а не вместо неё: две цифры по-прежнему вдвое быстрее щелчка, а треугольник существует для того, кто записывает партию с рукой на мыши. Одна клетка на бросок, никогда не две: 3-1 и 1-3 — это один и тот же бросок.

Каждый ход, сыгранный на доске, начинается с броска, набранного на клавиатуре или выбранного щелчком по треугольнику: без введённых костей доска ничего не играет. Когда обе кости введены, доска ограничена допустимыми ходами этого броска — в конце документа, как и на перечитанном действии, курсор которого загрузил кости. Щелчок по шашке играет её левой костью или следующей, если первая не может; перетаскивание ставит её на место назначения. Сыгранные кости становятся серыми, щелчок по несыгранным костям меняет их местами, а Backspace — или правый щелчок по доске, возвращающий весь ход, — отменяет ход. Каждый сыгранный шаг оставляет в списке только содержащие его варианты, первый из которых заранее выбран: это жест для дальнего хода, когда спуск к двенадцатому варианту стоит тринадцати нажатий клавиш. С первого шага стрелки выбранного кандидата уходят с доски, чтобы не смешиваться с разыгрываемым ходом; они возвращаются, когда ход отменяется или записывается.

Завершённый ход записывается только подтверждением: щелчком по серым костям, ВВОДОМ или следующим броском — цифрой или клеткой треугольника, — который сначала записывает его с костями в том виде, как они были набраны. На перечитанном действии он его заменяет.

Недопустимый ход записывается так, как он был сыгран, без кнопки и без смены режима. Перетаскивание, которого не предлагает ни один допустимый ход, ставит шашку туда, где её отпустили, — даже с пункта, откуда не начинается ни один допустимый ход, если на нём стоит шашка стороны, чей ход. Тогда ход выходит за рамки правил: дальше играется свободно, щелчком и перетаскиванием, список вариантов уступает место строке, которая об этом напоминает, а подтверждение записывает введённые кости, шаги и полученную доску. Backspace отменяет последний шаг; отмена единственного шага вне правил возвращает список.

Ход можно также набрать на клавиатуре, в транскрипте. Двойной щелчок по ячейке хода — или танца, незаписанного хода — превращает её в поле, заполненное её костями и записью, 62: 24/18 13/11. Там исправляются вместе бросок и ход; без кости: в начале набирается только ход — 13/7 8/7*, bar/22, 6/off, 13/7(2) — а кости ячейки остаются. ENTER записывает оба вместо написанного, ESC закрывает ячейку, ничего не записывая. Нечитаемые кости (72:) или текст, не называющий никакого хода, оставляют поле открытым, о чём сообщает строка состояния; ход, нелегальный для этих костей, записывается и помечается, но никогда не заменяется другим. Клавиша e так же открывает ячейку курсора. Ячейка с пунктирной рамкой текущего ввода открывается так же, как только введены обе её кости.

Ход, введённый свободным перетаскиванием или нотацией и оказавшийся допустимым, остаётся обычным ходом — сравнение делается по полученной доске, а не по происхождению жеста; иначе он помечается «недопустимый ход» в транскрипте, а экспорт .mat предупреждает перед записью файла, никогда не отказывая.

Доска, оставленная недопустимым ходом, относится к позиции, из которой он был сыгран. Когда исправление выше в транскрипте меняет эту позицию, шаги хода переигрываются от новой, и все последующие позиции отражают исправление.

Стрелки на доске — это стрелки хода, записанного в решении под курсором, серым цветом, переигранного на той позиции, которая у него. Шаг, который там больше не играется, — исходный пункт, опустевший после исправления выше, пункт, занятый соперником, шашка, оставленная на баре, выброс при шашке вне дома, длина, которую после исправленного броска не покрывает ни одна кость, — всё равно начинается с записанного пункта, красным пунктиром, с обведённым исходным пунктом, а ячейка получает отметку «недопустимый ход». Ход, который переигрывание признаёт недопустимым, хотя ни один шаг не недопустим сам по себе, становится красным целиком. Ход движка никогда не занимает его место: строка списка рисует свои стрелки синим, только когда на неё наведён указатель или когда она выбрана колёсиком, клавишами или щелчком.

На строке костей ряд Удвоить, Принять, Пас, Сдаться переносит на мышь четыре жеста куба: вместе с двумя костями это пять возможных ответов на один-единственный вопрос — что сделала сторона, которая ходит? Ряд говорит, чей черёд: сторона, которая ходит, объявляет — удвоить, сдаться, — либо противная сторона отвечает — принять, пас; никогда все четыре разом, и кнопка, чей жест ни на что не отвечал бы, остаётся погашенной. Клавиатура же не отказывает никогда: погашенная кнопка — это цель, которую не предлагают, а не запрещённый жест. «Сдаться» пока ничего не записывает: ряд превращается в три уровня — простой, гаммон, бэкгаммон — и «Отмена», дублирующую клавишу ESC; на клавиатуре — r, затем 1, 2 или 3, а ENTER означает простую. Куб, нарисованный на доске, — вторая цель этих жестов: щелчок по нему предлагает дубль. Перед предложением он не отвечает: принятие и пас — два симметричных ответа, и они живут вместе в ряду, по щелчку каждый.

Строка состояния говорит одним словом, чего ждёт черновик: записанный сам собой «танец», первый ход партии, ожидаемый ответ на дубль, ожидаемый уровень после сдачи, исправление на месте, ход «к пересмотру», у которого изменился бросок. Там же она отвечает жестам, которым нечего делать, — «нечего отменять», «под курсором нет действия» — в течение полутора секунд. Несогласованность же, оставленную действием, отмечает шапка транскрипта, там, где стоит ошибочная ячейка.

Партия кончается пасом, сдачей или выводом пятнадцатой шашки (простой, гаммон или бэкгаммон, умноженные на значение куба). Счёт, партия Кроуфорда и конец матча появляются тогда на строке матча, и ожидается первый ход следующей партии.

Счёт партии — тот, что дают предыдущие партии, если только за столом не был заявлен другой. Двойной щелчок по счёту в заголовке партии, в транскрипте, превращает его в заполненное поле: в нём набирается счёт, при котором партия была сыграна, — 3-2, 3–2 или 3 2, — ВВОД записывает его, ESC закрывает поле, ничего не записав, а очищенное и подтверждённое поле возвращает выведенный счёт. Партия играется при этом счёте: партия Crawford, конец матча и следующие партии вытекают из него, и сохранённый матч, как и файл .mat, его несут. Счёт, отличный от выведенного, отмечается, подсказка называет выведенный, а первое действие партии несёт несогласованность «несогласованный заявленный счёт». В игре на деньги счёта для заявления нет.

Запись, начатая с середины матча, может начинаться после партии Кроуфорда. Когда первая партия открывается при счёте, где игроку остаётся одно очко до победы в матче, в её заголовке появляется флажок После Кроуфорда: если он отмечен, эта партия не является партией Кроуфорда, куб в игре по обычным правилам, и партия Кроуфорда не последует. Если флажок снят или ни одному игроку не остаётся одного очка, партия Кроуфорда выводится из счёта как обычно. Сохранённый матч хранит это объявление, а файл .mat записывает его в строку заголовка ; [Crawford "PostCrawford"], которую blunderDB читает обратно; gnubg её игнорирует и считает эту первую партию партией Кроуфорда.

Транскрипт занимает правую половину панели: по столбцу на игрока, по строке на ход, действие куба и конец партии — в столбце того, кто действует. Ячейка курсора обведена; перемещение курсора возвращает доску к позиции указанного действия и показывает его кандидатов с выбранным записанным ходом. Несогласованность (недопустимый ход, двойной ход, невозможное действие куба, действие за концом матча, несогласованные кости, незаписанный ход, несогласованный заявленный счёт) украшает свою ячейку; подсказка называет нарушенное правило и то, что его нарушает («куб: Bob им не владеет»). Незаписанный ход — случай перечитанного файла .mat: gnubg пишет там ???, когда не сохранил сыгранный ход; бросок известен, а ход нет, и постановка курсора на эту ячейку предлагает ходы этого броска, чтобы её заполнить. Двойной ход оставляет пустую ячейку в пунктирной рамке в столбце той стороны, чей ход пропущен: курсор на ней останавливается, щелчок переводит его туда, и именно там набирается пропущенный ход — например, удалённое решение. Партии сворачиваются; та, где курсор, открыта.

То, что набирается, рисуется в транскрипте пунктиром — ровно на том месте, где будет записано: кости по мере их ввода, нотация хода, как только он выбран, и в столбце той стороны, которой принадлежит действие. Исправление накрывает заменяемую ячейку, вставка открывает ячейку между двумя соседними, новый ввод появляется внизу текущей партии. До подтверждения в черновик ничего не пишется; прочитанное и то, что скажет документ, никогда не расходятся.

Исправлять — значит печатать в той ячейке, где находишься. Когда курсор стоит на действии, цифра начинает его бросок заново на месте, и четыре действия куба тоже работают как исправления: на пасе t — или кнопка Принять — пишет принятие вместо паса, без того чтобы удалять его и затем вставлять. Партия тогда продолжается: сразу после принятия открывается ячейка на стороне предложившего дабл, и продолжение партии набирается там как обычно, вставляясь перед первым ходом следующей партии, пока партия не закончится. Этот первый ход сохраняет счёт, с которого начиналась его партия, и сообщает его: если конец продолженной партии даёт другой, расхождение отмечается. Те же клавиши заполняют ячейку, только что открытую вставкой: i, затем d вставляет дабл перед указанным действием.

Вернуться на последнее действие — значит вернуться туда, где пишется запись. Цифра, набранная на нём, ещё исправляет его бросок, но как только этот бросок набран заново, следующая цифра подтверждает действие и открывает следующее решение; ВВОД подтверждает его так же. Последующие решения тогда добавляются следом, как в первый раз.

Ввод другого броска на первом ходе партии заново решает, кто начинает: кубик игрока 1 вводится первым, кубик игрока 2 — следом, и побеждает больший — большой кубик первым, ход достаётся игроку 1, внизу доски; малый первым — игроку 2, вверху. Первый кандидат нового броска выбирается заранее, и ход нужно проверить. Повторный ввод того же броска, в любом порядке, ничего не меняет. Чтобы отдать первый ход другому игроку, не меняя броска, служит s: порядок кубиков следует за стороной, а первый ход стороны, которую этот порядок не называет, отмечается «несогласованные кубики». Остальная партия сохраняет свои стороны.

Вставка в середине документа продолжает вставлять: подтверждение открывает следом пустую ячейку, и следующее действие также вставляется, а не затирает идущее за ним. Именно это позволяет дописать весь конец партии — пас, который должен был быть принятием, — не потеряв того, что уже набрано из следующей партии. Конец партии или перемещение курсора прекращает вставку: курсор тогда встаёт на первый ход следующей партии.

Del (или x) убирает редактируемое решение и возвращается к предыдущему, готовому к исправлению: на записанной ячейке действие исчезает; на открытой вставке или броске, набранном в конце документа, отменяется сам ввод. Нажимая Del раз за разом, так поднимаются по транскрипту, стирая. Последующие действия сохраняют свою сторону, а двойной ход, оставленный удалением, отмечается, но курсор к нему не возвращается.

Щелчок правой кнопкой по ячейке открывает исправления этого действия — вставить до, вставить после, удалить, сменить сторону — и по пути приводит туда курсор; это те же жесты, что и клавиши i, a, x и s, и меню браузера убрано только там. В других местах у них нет кнопок: кнопка, действующая на «действие под курсором», целилась бы в ячейку, которую можно и не видеть, тогда как правый щелчок называет свою.

Панель черновика несёт два своих единственных выхода на правом краю, после меню «⋯». «Завершить» (CTRL-ENTER) записывает матч в библиотеку и освобождает черновик; анализ одних лишь новых позиций стартует сразу, с ходом выполнения и отменой в строке состояния. «Отказаться» удаляет черновик без матча; подтверждение запрашивается только для черновика, ни разу не завершённого, поскольку он уносит всё, что в нём записано. Рядом панель сообщает, что сделает «Завершить» — новый матч или замену матча №n. О сохранности самого черновика она ничего не говорит: он записывается в базу после каждого действия, а возврат к списку оставляет его для продолжения позже.

Меню ⋯ панели содержит «.mat text», которое открывает файл Jellyfish таким, каким он был бы записан, в окне, достаточно широком, чтобы его столбцы остались выровненными, с кнопкой для копирования, и «Экспорт .mat», которое пишет тот же файл на диск. Две стрелки ↶ и ↷ отменяют и возвращают, как CTRL-Z и CTRL-SHIFT-Z.

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

Черновик с несоответствиями всё равно завершается, после предупреждения: ничего не отклоняется. Недопустимый ход экспортируется так, как он был сыгран, с предупреждением, что gnubg и XG отметят его («Invalid move») и затем разойдутся.

Чтобы исправить матч библиотеки, кнопка ⌨ списка матчей или «Править запись» в его карточке открывает черновик из этого матча — или вновь открывает уже открытый: один черновик на матч. Завершение черновика заменяет матч под тем же идентификатором; позиции неизменённых действий сохраняют свои комментарии, анализы и карточки. Импортированный матч (XG, GnuBG, BGF) несёт анализы и комментарии, которых нет в .mat: перед открытием диалог сообщает, сколько их максимум и что завершение черновика может их потерять.

Матч можно также транскрибировать по видео. Кнопка Видео на панели черновика открывает меню: Локальный файл… для выбора видео на диске, Ссылка YouTube… для вставки адреса в поле, которое открывается в меню, и, отдельно, Убрать видео для удаления источника. Меню несёт только источник: режим кинотеатра и место видео настраиваются кнопками панели над видео, видимой, пока видео загружено. ECHAP или щелчок в другом месте закрывает меню и возвращает ввод панели. Пока источник не прикреплён, панель остаётся такой, как описано выше: ни области видео, ни дополнительных клавиш. После прикрепления источника кнопка носит его короткое имя — имя файла или «YouTube» — и видео показывается рядом с доской. Не найденный файл указывается заново из видео кнопкой Выбрать файл…. На уже прикреплённом видео YouTube Ссылка YouTube… открывается на его адресе, выделенном: вставка заменяет его. Вновь открытый черновик находит своё видео на паузе там, где его оставили на этом компьютере, а при отсутствии — за несколько секунд до последней метки; курсор остаётся в конце транскрипта, готовый к вводу, и следует за воспроизведением, только когда оно входит в другое действие.

Видео рядом с доской. Пока видео открыто, область доски делится: видео слева, доска справа, их разделяет вертикальная полоса, которую тянут, чтобы увеличить одно или другое; ширина сохраняется от сеанса к сеансу. Видео сохраняет пропорции и как можно лучше занимает отведённое ему место. Кнопка на панели над ним возвращает его в панель, над транскриптом, и снова ставит рядом с доской; этот выбор тоже запоминается. В панели высота видео регулируется перетаскиванием полосы под ним, при этом поле ввода никогда не выталкивается из поля зрения. Переход с одного места на другое не перезапускает файл: воспроизведение продолжается с того же момента; видео YouTube возобновляется с того момента, где оно было, на паузе. Щелчок по видео, по его элементам управления или по разделительной полосе оставляет клавиатуру панели: клавиши ввода, клавиши видео и CTRL-ВЛЕВО / CTRL-ВПРАВО, поворачивающие доску, сохраняют своё действие.

Сторона видео. Видео по умолчанию стоит слева от доски; его можно перенести вправо. Кнопка ⇄ рядом с той, что возвращает видео в панель, меняет сторону одним щелчком. Можно также взять маленькую ручку в верхней части видео и перетащить её: две половины области подсвечиваются, и отпускание над одной из них помещает видео туда. ESC или отпускание за пределами области отменяет перенос. Сама доска не перемещается: перетаскивание по ней двигает фишки. Сторона запоминается от сеанса к сеансу, а ширина остаётся шириной видео, с какой бы стороны оно ни стояло. Ручка и кнопка оставляют клавиатуру панели.

Режим кинотеатра. Чтобы следить за матчем крупно, F11 или кнопка панели над видео, слева от той, что возвращает его в панель, переводят окно в полноэкранный режим и отдают всё место видео. Поверх него, в правом нижнем углу, плавает маленькая доска: она показывает позицию записи, введённые кости, ход, выполняемый на доске, и стрелки главной доски, нотация которых отображается в её заголовке. Ход играется там, как на основной доске: щелчок по шашке, перетаскивание, щелчок по костям, чтобы поменять их местами или подтвердить, щелчок правой кнопкой по доске, чтобы начать всё заново. Её перемещают перетаскиванием — за заголовок, когда кости введены, и тогда доска играет ход; одна кнопка заголовка даёт ей три размера, другая сворачивает её во вкладку, которая открывает её снова. Её место и размер запоминаются; свёрнутая, она снова открывается при следующем входе в режим кинотеатра. Клавиатура остаётся клавиатурой панели: кости, кандидаты, подтверждение, курсор и клавиши видео (ПРОБЕЛ, [, ], …) сохраняют своё действие, и ни доска, ни кнопки не забирают фокус. Поскольку ряд жестов кубом там скрыт, r открывает поверх видео небольшое окно с тремя уровнями сдачи: 1, 2, 3 или щелчок выбирают их, ENTER означает простую, а ESC отменяет её, не выходя из режима кинотеатра. F11, ESC или кнопка справа вверху выходят из режима кинотеатра и возвращают окну прежнее состояние: в режиме кинотеатра ESC служит для выхода, а BACKSPACE стирает введённые кости. Удаление видео, выход из черновика или смена вкладки тоже завершают его. У проигрывателя нет собственного полноэкранного режима, включая YouTube: экран меняет только режим кинотеатра. Режим существует только в Записи, с прикреплённым видео.

При наличии видео каждое новое действие несёт метки времени: момент броска, задаваемый первой клавишей костей, и момент действия, задаваемый подтверждением; оба считываются с видео в момент жеста. Исправление на месте не затрагивает метки. Момент действия задаёт только явное подтверждение: ENTER, двойной щелчок по кандидату или ход, завершённый на доске. Цифра следующего броска или действие с кубом также подтверждает ход, но не задаёт никакого момента: ход остаётся без момента действия, а не получает ложный, и строка состояния об этом напоминает. Ход, завершённый на доске без заранее введённых костей, не имеет момента броска. Чтобы поставить время на решение о ходе фишек, подтверждают ENTER в момент, когда ход закончен на изображении. v задаёт постфактум текущий момент как момент действия под курсором, SHIFT-V — как момент броска. ПРОБЕЛ запускает или приостанавливает видео; SHIFT-ВЛЕВО и SHIFT-ВПРАВО сдвигают его на 5 секунд, CTRL-SHIFT-ВЛЕВО и CTRL-SHIFT-ВПРАВО — на одну секунду. [ замедляет воспроизведение, а ] ускоряет его с шагом 0,25 от 0,25× до 4×; видео YouTube предлагает только скорости своего плеера, до 2×. Скорость показывается в углу видео, когда она не равна 1×, а новый источник снова начинает с 1×.

Видео, снятое боком, выпрямляется кнопкой ⟳ панели видео, имеющейся и в панели режима театра, или клавишей o: четверть оборота при каждом нажатии, от 0° до 270°. Изображение остаётся целиком — и в видео из файла, и в рамке YouTube. Угол запоминается для черновика, только на этом компьютере; в базу он не записывается.

Из меток выводятся длительности решений: решение о ходе фишек идёт от броска до конца хода, решение о кубе — от предыдущего действия до броска, удвоение или ответ — от предыдущего действия до собственного. Ячейка с меткой отмечается ненавязчивой точкой; её подсказка показывает бросок, ход и длительность («бросок 12:34, ход 12:51, 17 s»), а панель анализа показывает длительность действия под курсором, как для матча, сыгранного в Дуэли. Метки вне порядка видео, как можно меньше, чтобы остальные продвигались, помечаются как любое несоответствие и оставляют неизвестными зависящие от них длительности. Установка курсора на ячейку (щелчок по ходу или по его длительности, h, l) переводит видео на секунду до броска этого действия или до самого действия, если у броска нет момента; проигрыватель на паузе остаётся на паузе.

Как только у черновика есть видео или временная метка, в транскрипте справа от каждого игрока появляется столбец длительность: длительность решения в секундах (в минутах и секундах свыше минуты), за которой после средней точки следует решение по кубу, предшествующее броску. Ход без момента действия не остаётся пустым: его длительность оценивается от броска до первого момента следующего хода (его броска или жеста с кубом) и показывается как измеренная; её подсказка сообщает, что она оценена. Это верхняя граница, включающая взятие и бросок костей. Решение по кубу не оценивается: без момента действия предыдущего хода его длительность остаётся неизвестной, и тогда строка состояния предлагает нажать v на этом ходу, чтобы измерить её. Во время воспроизведения курсор следует за видео в уже размеченной части: каждое действие охватывает видео от своего броска, а при его отсутствии от предыдущего действия, до начала следующего, и курсор встаёт на действие, в которое входит воспроизведение; после последней метки он один раз возвращается в конец транскрипта. Он не двигается ни во время ввода, ни при паузе видео, и это перемещение не попадает в историю отмены. Поставленный вручную, курсор остаётся на выбранном действии, пока воспроизведение его не покинуло: щёлкают по ходу без момента действия, запускают видео, нажимают v в конце хода, и именно этот ход получает момент. На последнем действии, у которого нет конца, он остаётся десять секунд после его броска, затем возвращается в конец транскрипта: там цифры открывают следующий бросок, о чём сообщает индикатор.

Приложение само не декодирует видео: воспроизводятся форматы, которые поддерживает webview. Формат, который он не воспроизводит, или файл, о котором webview не сообщает никаких сведений в течение десяти секунд, отмечается в панели вместе с его контейнером и, в Linux, с GStreamer-плагинами, которые нужно установить. Для MP4 с H.264 и AAC требуются gst-plugins-good (демультиплексор MP4, разбор AAC), gst-plugins-bad и gst-libav (декодеры H.264 и AAC): в Arch — gst-plugins-good gst-plugins-bad gst-libav; в Debian и Ubuntu — gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav; в Fedora — gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-libav (последний пакет берётся из RPM Fusion) — см. Загрузка и установка.

Зависшее видео — переход, который не завершается, или неподвижный кадр во время воспроизведения — перезагружается через три секунды и продолжается с запрошенного момента, с той же скоростью, в режиме воспроизведения или паузы, как и прежде. После трёх безрезультатных перезагрузок панель сообщает об этом и предлагает повторить попытку.

Неправильно мультиплексированный файл .webm или .mkv останавливает видео при некоторых переходах: группа кадров файла начинается с неключевого кадра, который webview не может декодировать сам по себе. Так бывает с файлами, загруженными yt-dlp. При открытии такого файла blunderDB читает индекс файла (несколько килобайт на группу) и, если находит проблемные переходы, панель сообщает об этом и показывает команду, которая исправляет файл без перекодирования, готовую к копированию:

ffmpeg -i 'ronde 4.webm' -map 0 -c copy -cluster_time_limit 30000 'ronde 4.remux.webm'

Команда записывает копию рядом с оригиналом; затем привяжите эту копию к матчу или к транскрипции. Панель предлагает ту же команду, когда сдаётся после трёх перезагрузок файла .webm или .mkv.

Совет

Смотрите Горячие клавиши для доступных горячих клавиш.