Анализ, комментарии и поиск

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

Панель Анализ (CTRL-L) отображает данные анализа текущей позиции, импортированные из eXtreme Gammon (XG), GNUbg, BGBlitz или gammonNet. Отображаются лучшие альтернативы (ходы шашками или решения куба) с их значениями эквити и соответствующими ошибками. Клавиша d переключает между анализом ходов шашками и анализом куба. При навигации по матчу фактически сыгранный ход выделяется в списке альтернатив. Нажмите CTRL-L или выполните команду list для отображения или скрытия панели.

Позиция без анализа сообщает об этом и предлагает кнопку Оценить, которая открывает её в панели Eval.

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

Под таблицами иногда появляется фраза, говорящая, чего стоило сыгранное решение и почему: «Вы теряете 120 mp: сыгранный ход оставляет три блота там, где 13/7 8/7 оставляет только один.» Она порождается шестью измеримыми правилами — открытость, сделанный или упущенный пункт дома, отданные шансы на гаммон, безопасность, которая стоит дороже, чем даёт, и два направления ошибки по кубу (дубль слишком поздно или слишком рано, слишком свободное взятие или слишком тесный пас).

Главное правило — молчание: фраза появляется, только когда правило применимо уверенно, и при ошибке выше порога, начиная с которого движки согласны, что это ошибка. В остальное время фразы нет — ни пустой рамки, ни «мы не знаем». Неверное объяснение стоит дороже, чем его отсутствие: оно учит неточному.

То же предложение сопровождает ошибку там, где вы её только что совершили: на обороте карточки Anki, под раскрытым анализом, и в вердикте викторины упражнения «Решение», под стоимостью в mp. Здесь действуют те же правила молчания: верный ход или ошибка, которую не объясняет ни одно правило, ничего не добавляют.

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

Лучший ход движка — это лучший ход этого движка: список кандидатов отсортирован по эквити вперемешку по всем движкам, поэтому его первый элемент ни для кого в отдельности не лучший.

Полоса появляется, только если движков действительно несколько, и существует лишь в этой панели: панель Eval показывает одно решение — встроенного движка (ADR-0017), и сравнению там не место.

Ходы записываются так, как они читаются на доске, здесь так же, как в панели Eval: наименее продвинутая шашка ходит первой, и шашка, использующая подряд несколько костей, записывается только один раз — 64, сыгранное одной и той же шашкой, читается 24/14, а 24/14*, если она бьёт по прибытии. Подробности цепочки появляются вновь лишь тогда, когда они говорят что-то ещё: удар по пути сохраняет свой промежуточный пункт, 24/18* 18/14, иначе удар на 18 исчез бы из записи.

Эквити импортированного анализа подчиняется тому же правилу, что и панель Eval: столбец указывает свой референциал — «Equity (money)» или «Equity (match)» — в зависимости от счёта анализируемой позиции, а не просто «Equity» без указания шкалы. Правила Jacoby и Beaver, действующие на позиции money game, также отображаются в виде значков под таблицей решения по кубу.

Роллауты

Панель Анализ умеет прокатывать позицию: играть сотни партий от каждого выбранного хода или каждого действия с кубом, чтобы различить два варианта, которые прямая оценка почти не разделяет. В таблице ходов-кандидатов Ctrl+клик добавляет ход в выделение или убирает его, а Shift+клик расширяет выделение до нажатого хода; обычный клик выделяет один ход, как обычно. Правый клик по выделению — или по другому ходу, который становится выделением, — открывает меню, пункт которого Rollout (Стандартный) сразу запускает роллаут выделенных ходов с выбранной настройкой. На решении о кубе правый клик прокатывает решение целиком. Клавиша Shift+R панели делает то же (без выделения она прокатывает лучших кандидатов позиции), как и команда rollout (псевдоним ro). Во время роллаута тонкая полоса под таблицей отслеживает сыгранные партии; Отмена, пункт меню Отменить роллаут, Esc или повторное Shift+R останавливают его, ничего не записывая. Настройка — Быстрый, Стандартный или Свободный — выбирается на вкладке gammonNet конфигурации (см. конфигурация).

То же меню предлагает Копировать позицию и анализ — изображение, которое копирует CTRL-X CTRL-X: доску и начало списка ходов или весь анализ куба. Как только выбран ход, добавляется второй пункт, Копировать позицию и выбранные ходы: изображение сохраняет только эти ходы в порядке ранжирования, каждый со своим местом среди всех кандидатов и со своей ошибкой относительно лучшего хода позиции, а не лучшего из выбранных. На решении о кубе показан только первый. Ячейки таблиц анализа не выделяются как текст: щелчки выбора не оставляют на них подсветки.

Результат хранится рядом с анализом, а не вместо него: импортированный анализ не изменяется. Каждый прокатанный ход несёт свой результат в собственной строке таблицы, в столбце Rollout, который появляется только когда у позиции есть роллаут: эквити и полуширина его 95-процентного доверительного интервала в шкале столбца эквити. При наведении на ячейку показываются подробности: стандартное отклонение, JSD (расстояние до лучшего хода в стандартных отклонениях разности: начиная с предела ход считается решённым и больше не разыгрывается), число партий и Конфигурация — движок и полная сигнатура параметров: два роллаута с одной сигнатурой дают одни и те же числа. Роллаут останавливается, как только ходы различены. Роллаут решения о кубе, у которого нет строки хода, показывается таблицей под решением. Роллаут играет куб в своих партиях: ранжирование надёжно, абсолютное эквити чуть менее, о чём напоминает блок. Он не играет бивер: его строка удвоение, принятие — строка простого принятия, даже в позиции money при правиле Beaver, где прямой анализ учитывает бивер. Позицию, которой нет в базе, можно прокатать, но не сохранить.

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

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

Панель комментариев

Панель Комментарии (CTRL-P) показывает, добавляет и изменяет комментарии, связанные с текущей позицией. У позиции может быть несколько комментариев, написанных разными людьми: все они показываются лентой, от новых к старым, каждый с именем автора, а ваши идут первыми. Комментарии, импортированные из файлов XG, автоматически связываются с соответствующими позициями. Нажмите CTRL-P или выполните команду comment, чтобы показать или скрыть панель.

Имя, приписываемое вашим комментариям, задаётся в настройках, на вкладке Интерфейс, в поле Ваше имя; если оно пустое, у ваших комментариев нет автора. Комментарии из импорта XG приписываются XG, комментарии из файла матча — его транскриптору. Переписанный комментарий приписывается вам. Поиск au"Alice" оставляет позиции, которые прокомментировала Alice; вне интерфейса blunderdb comment add --author записывает комментарий, приписанный этому автору, а blunderdb comment list считывает их обратно (см. Интерфейс командной строки (CLI)). Это имя — свободный текст: оно ничего не удостоверяет, в отличие от подписи, описанной ниже.

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

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

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

Комментарий, который больше не соответствует подписанному, сохраняется, но помечается ⚠ не проверен: изменённый в файле текст или автор, комментарий, перенесённый на другую позицию, или позиция, чья идентичность с тех пор исправлена. Подпись действительно охватывает идентичность позиции: когда blunderdb repair пересчитывает маркер Crawford позиции (и при необходимости сливает её с двойником) или когда исправление матча переносит ваши заметки на исправленную позицию, подписанные комментарии, которые она несёт, больше не проверяются, хотя их текст не менялся; blunderdb repair сообщает их число. Подпись, которую blunderDB не умеет читать, отображается как ⚠ подпись нечитаема. Изменение подписанного комментария снимает подпись: фраза становится вашей.

Комментарий, полученный из другой базы, сохраняет своё происхождение: заметка, написанная её автором, удерживает свою позицию при удалении матча, как и ваши; замечание из файла XG сохраняет метку XG и исчезает вместе с матчем. Это относится к базе, экспортированной версией blunderDB, которая уже подписывает комментарии; пришедший из более старого файла комментарий получает метку импортирован и исчезает вместе с матчем. blunderdb comment list выводит происхождение в столбце Origin и подпись в столбце Signed by.

Теги

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

Не хватало другой половины: видеть словарь, который ты себе построил, и щёлкнуть по тегу вместо того, чтобы вспоминать, как ты его писал. Команда tags или кнопка # в заголовке панели открывает окно словаря: теги этой базы, каждый с числом позиций, которые его несут, — по щелчку запускается соответствующий поиск. Под списком идут рекомендуемые теги, которых база ещё не использует, — словарь, взятый из литературы по нардам (#blitz, #prime, #holding, #backgame, #containment, #crunch, #ace-point, #timing…), предложенный и никогда не навязанный: тег, отсутствующий в этом списке, стоит ровно столько же, сколько тег из него.

При наборе # предлагает теги, которые эта база уже использует, а затем рекомендуемые. Именно это не даёт написать #back-game в один день и #backgame в другой — больше ничто этого не поймает.

Поиск по тегу пишется как #prime в командной строке. Он разграничен: #prime не находит #priming, тогда как обычный текстовый поиск, ищущий подстроку, их не различает. Несколько тегов складываются — s #prime #backgame запрашивает позиции, несущие оба, — потому что позиция несёт несколько тегов: назвать два может значить только «оба». Это обратно фильтру фазы или происхождения, где у позиции лишь одно значение и назвать два значения может значить только «то или другое».

Тот же список доступен вне интерфейса командой blunderdb list --type tags (см. Интерфейс командной строки (CLI)).

Корзина

Удаление позиции, коллекции, комментария, карточки Anki или матча проходит через корзину: удаление действительно происходит, но копия исчезнувшего хранится тридцать дней. Команда trash открывает окно со списком, где для каждого элемента есть Восстановить и Удалить, а также кнопка Очистить корзину.

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

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

Всё старше тридцати дней удаляет команда vacuum, а не открытие базы: не делать vacuum — значит хранить всё.

Примечание

Корзина не путешествует: экспорт её не переносит.

Панель поиска

Панель Поиск (CTRL-F или TAB) фильтрует позиции по свободно комбинируемым критериям: структура шашек, тип решения куба, величина ошибки, даты, метки и т.д. Клавиша TAB одновременно открывает панель поиска и редактор позиций, позволяя задать структуру шашек непосредственно на доске.

Панель поиска

Панель Поиска: числовые фильтры, структура шашек на доске, вкладки Не менее / Кроме.

Фильтры задаются на подвкладке Критерии. Если поиск ничего не нашёл, панель сообщает об этом («Ни одна позиция не подходит») и показывает кнопку Очистить фильтры, а не ограничивается строкой состояния.

Чтобы искать среди показанных позиций, используйте команду ss с фильтрами (напр.: ss nc, ss E>40). ss ищет в списке на экране: в результатах предыдущего поиска, в открытой коллекции или в позициях матча, просматриваемого в данный момент, независимо от того, набрана ли команда напрямую или из панели поиска (TAB). Флажок Поиск в текущих результатах панели следует тому же правилу; флажок Открыть в новой вкладке выводит результаты в новом представлении (см. Вкладки представлений), а не в текущем. В коллекции и в матче s отклоняется: он искал бы по всей библиотеке и заменил бы показанный список.

Из результатов поиска ss, запущенного из коллекции или матча, выходят клавишей Esc — одним нажатием, как только ни поле, ни панель с фокусом не имеют чего закрыть (например, выбранного в анализе хода): blunderDB возвращается ко всей коллекции или к матчу на изучаемом ходе, и к оставленной позиции. Этот возврат следует только за ss: s, запущенный из панели поиска, открытой над коллекцией или матчем, ищет по всей библиотеке, и Esc больше не возвращает к оставленному списку.

Поиск в большой базе показывается до того, как он подсчитан: первая страница результатов появляется сразу, а строка состояния показывает « Поиск… » с прошедшим временем, пока общее число неизвестно; затем оно заменяет временную длину списка. Одновременно выполняется только один поиск: запуск другого прерывает предыдущий. Esc прерывает выполняющийся поиск и останавливает его просмотр базы; если первая страница уже показана, она остаётся одна, и строка состояния сообщает об этом.

Панель предлагает явное управление искомым типом решения: Безразлично (без фильтра), Шашки (решения по ходу) или Куб (решения по кубу). Когда выбран Куб, второй список уточняет подтип: Все, Дабл / Без дабла (игрок на ходу должен решить, удваивать ли) или Тейк / Пас (ответ на удвоение соперника). Управление синхронизировано с доской: изменение костей или куба на доске обновляет тип решения, и наоборот. В режиме Тейк / Пас куб отображается в центре доски на предложенном значении; это значение остаётся редактируемым.

Фаза игры — дебют, миттельшпиль, гонка, снятие шашек — это метка, которую blunderDB вычисляет по одной только доске. Она никогда не редактируется и доступна для поиска через маркер командной строки ph: (ph:race, повторяемый: ph:race ph:bearoff). Три из четырёх её границ — те, что GNU Backgammon использует для выбора своих сетей; четвёртая, где заканчивается дебют, — соглашение blunderDB: позиция всё ещё в дебюте, пока ни одна из сторон не сдвинула более четырёх шашек с исходных пунктов, ни одна не снята и ни одна не стоит на баре.

Примечание

Метку пересчитывает команда blunderdb repair. В базе, открытой впервые этой версией, расчёт делается один раз, при открытии. База, фазы которой никогда не вычислялись, не возвращает ничего для ph: — ничего, а не ложный ответ.

Токен like упорядочивает, а не сужает: его присутствие располагает результат по возрастанию расстояния до целевой позиции — like до текущей, like42 до позиции с номером 42 — а остальные токены сужают упорядоченное таким образом множество, так что s like42 E>80 читается «соседи 42-й, где я ошибся». Расстояние — это транспортное расстояние в шашко-пипсах, объём движения шашек, разделяющий две позиции, с точки зрения игрока на ходу.

Соседняя позиция — это та же задача, а не тот же рисунок: упорядочивание берётся внутри класса цели — тот же тип решения, тот же режим (на деньги или матч) для решения о кубе, и матч, отличный от её собственного, ибо позиции, окружающие её в её же партии, — её ближайшие структуры, но никогда не её соседи. Кубики, счёт и куб остаются вне класса; обычные токены фильтруют по ним, когда это нужно. like42* расширяет класс на все типы решений и на оба режима, но никогда на матч цели; like<12 отбрасывает всё, что дальше двенадцати шашко-пипсов. Упорядочивание, ничего не нашедшее, возвращает пустой список и сообщает об этом, а не десять несвязанных позиций.

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

Каждый сосед несёт своё расстояние под таблицами анализа, вместе с позицией, к которой он близок. Именно это позволяет судить, смотрим ли мы на соседа или на совпадение, и именно в этом смысл предела. Упорядочивание запускается и без командной строки: CTRL-SHIFT-L или пункт Соседние позиции контекстного меню доски.

Токен n считает встречи: n>3 оставляет позиции, встретившиеся в базе не менее трёх раз, по всем матчам и всем игрокам вместе. Это другой вопрос, чем «что я упустил» — позиция, встретившаяся двадцать раз и хорошо сыгранная девятнадцать, по-прежнему та, которую нужно знать наизусть. Считаются решения, а не матчи: одна и та же позиция дважды в одном матче считается за две, потому что решений было два. В сочетании с фильтром игрока считаются только вхождения этого игрока: n>3 pl!"Alice" оставляет позиции, которые Alice пришлось играть не менее трёх раз, а pl"Alice" — позиции матчей, которые она сыграла; op"Bob" так же ограничивает подсчёт матчами против Bob.

План игры — вторая производная метка, рядом с фазой, и она отвечает на вопрос, который набор сохранённых фильтров задать не может: «покажи мои ошибки в холдинг-гейме». Токен gt:, повторяемый (gt:holding gt:mutualholding), с точки зрения игрока на ходу — того плана, в котором принималось решение.

Десять распознаваемых планов, в порядке, в каком правила их разбирают, от самого частного к самому общему:

  • race — самые задние шашки обеих сторон разошлись: контакт больше невозможен. Граница GNU Backgammon.

  • bearin — игрок на ходу заводит шашки домой, пока соперник ещё держит якорь в его доме.

  • crunch — у игрока на ходу не более шести шашек вне его пунктов 1 и 2. Правило GNU Backgammon, порог его автора.

  • backgame — два и более якоря в доме соперника.

  • acepoint — единственный якорь, на первом пункте соперника, при отставании не менее двадцати пипсов.

  • blitz — сделано три и более пункта дома, и соперник на баре или с блотом под удар в этом доме.

  • primevprime — обе стороны держат прайм не менее чем из четырёх пунктов, и у каждой есть шашка, запертая за праймом другой.

  • mutualholding — обе стороны держат высокий якорь.

  • holding — игрок на ходу держит высокий якорь, соперник — нет.

  • contact — контакт, и ни один из планов выше. Дебют попадает сюда.

Три из этих правил — собственные правила GNU Backgammon, и у них есть источник; остальные — соглашения blunderDB. Литература по нардам описывает планы игры, не назначая чисел их границам, и для этой задачи не опубликовано ни одного измерения согласия между классификаторами. Поэтому пороги без источника — три пункта дома для блица, четыре пункта для прайма, двадцать пипсов отставания для ace-point game — записаны здесь, а не спрятаны в коде, и они версионированы: измените их, запустите blunderdb repair, и вся база будет размечена заново.

Примечание

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

Фильтр Отмеченная оставляет позиции, которые вы отметили в исходной программе матча. Эту информацию создаёт только eXtreme Gammon, записывая её ход за ходом в файл .xg; blunderDB читает её при импорте и сохраняет. Отмеченное решение по кубу даёт две отмеченные позиции — дабл и тейк/пас, поскольку blunderDB разделяет надвое то, что исходный файл записывает как одно решение.

Примечание

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

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

Примечание

Комментарии, импортированные из файла матча (XG, GNUbg), считаются комментариями. Чтобы оставить только свои, добавьте маркер co:user в командной строке (co:xg, co:gnubg, co:bgf и co:unknown называют остальные источники). Впрочем, комментарии, привязанные к матчу или турниру, здесь ни при чём: они комментируют матч или турнир, а не его позиции.

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

Полоса панели поиска несёт переключатель Критерии (фильтры) | История | Сохранённые — с четвёртым сегментом, Ассистент, когда включён встроенный ассистент, — и, на вкладке Критерии, кнопку Искать на её правом конце. Вкладка История перечисляет прошлые поиски с их датой и командой: щелчок выбирает поиск и показывает связанную позицию на доске, двойной щелчок выполняет его заново. Каждую запись можно сохранить в библиотеку фильтров (значок закладки, с присвоением фильтру имени) или удалить. Вкладка Сохранённые содержит библиотеку фильтров: дважды щёлкните по сохранённому фильтру, чтобы повторить соответствующий поиск (см. Приложение: Расширенное использование фильтров). Команда history (псевдоним hi) открывает панель поиска.

Звёздочка фильтра библиотеки закрепляет его. Закреплённые фильтры отображаются метками вверху панели, какая бы вкладка ни была открыта, и пронумерованы в порядке библиотеки: щелчок по метке запускает фильтр, а ALT-1 … ALT-9 запускают закреплённый фильтр с этим номером с любого экрана в режиме NORMAL или EDIT, не открывая панель. Фильтр задаёт тогда тот же вопрос, что и при двойном щелчке, включая структуру шашек. Закрепление принадлежит базе: оно следует за переименованным фильтром, исчезает вместе с удалённым и не переносится при экспорте библиотеки.

Повторно запущенный поиск сохраняет своё ранжирование: s like42 ранжирует относительно позиции 42, а s like — относительно доски, сохранённой вместе с поиском, то есть просматриваемой или нарисованной. Запись, в которой доска не сохранилась, не запускается против доски на экране, и строка состояния сообщает об этом.

Совет

Смотрите список команд для списка доступных фильтров.

Панель коллекций

Панель коллекций

Панель Коллекций: название, число позиций, описание, дата последнего изменения.

В панелях «Коллекции», «Турниры», Anki и «Транскрипция» кнопка + в заголовке, за которой следует название создаваемого (+ Новая коллекция, + Новый турнир, + Новая колода, + Новая запись), — единственный жест создания: она открывает поле ввода, которое Esc или Отмена закрывает в панелях «Коллекции» и «Турниры». В списке матчей значок ⌨ открывает транскрипцию матча, а значок ✎ исправляет его метаданные.

Панель Коллекции (CTRL-B) позволяет управлять коллекциями позиций. Коллекции можно создавать, переименовывать и удалять. Позиции можно в них добавлять и убирать (клавиша Del, спрашивается подтверждение). Двойной клик по коллекции даёт пройти её позиции клавишами ВЛЕВО и ВПРАВО. Команда ss ищет среди позиций открытой коллекции; затем Esc возвращает к коллекции (см. Панель поиска). Порядок коллекций и позиций внутри коллекции меняется перетаскиванием. Нажмите CTRL-B или выполните команду collection, чтобы показать или скрыть панель.

В заголовке открытой коллекции число позиций — ссылка, которая снова открывает их для просмотра, с первой; флажок в этой коллекции добавляет или убирает показанную позицию. Пустой список предлагает + Новая коллекция.

Стопка — коллекция жеста «пересмотреть позже»: двойной щелчок вне доски, клавиша b или кнопка закладки на панели инструментов кладёт показанную позицию в Стопку, а тот же жест убирает её оттуда. Закладка в углу доски показывает, что позиция лежит в ней, без других сообщений. Жест действует везде, где показана позиция: в разборе, поиске, редактировании, Eval, Записи, викторине, Дуэли. Сброс доски выполняется через меню правого щелчка (см. меню доски). Стопка — обычная коллекция: её переименовывают, переупорядочивают, экспортируют и очищают, как любую другую; она создаётся при первом использовании и создаётся заново, если была удалена. Позиция, которой ещё нет в библиотеке (черновик доски поиска или оценки), сразу записывается туда, как позиция, принесённая отдельно, а затем кладётся в Стопку. Командная строка делает тот же жест командой collection pile.

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

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

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

Живая коллекция остаётся живой в экспорте базы: её запрос переносится вместе с ней и заново вычисляется у получателя по позициям файла. Когда экспорт уносит позиции коллекций, он уносит те, которые запрос выбирает в момент экспорта, не более 5 000 позиций. Запрос, который указывает позиции, матчи или турниры по номеру, переписывается на номера файла; если какой-либо из них остаётся вне файла, коллекция выгружается замороженной, с позициями, которые запрос выбирает в момент экспорта.

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

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

  • Ошибки берутся из плана обучения: выражены в MWC и сгруппированы по семействам (план игры, характер, тема). Две ошибки семейства являются соседними, если расстояние между ними по like не превышает 12 шагов шашек; у ошибки с кубом соседние только ошибки с тем же счётом.

  • Каждая позиция стоит возвращаемую MWC (потеря минус сложность) её соседей и её самой: то, что принёс бы её урок, если бы служил всем. Тесный урок (второй выбор стоит меньше половины ошибки) или нестабильный вердикт (другая глубина или ролаут говорит иное) считается за половину; подтверждающий ролаут отмечается. Число в начале каждой строки — покрытая MWC; причина указывает значение, которое учитывается, когда урок считается за половину.

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

Охват — вся база, текущий матч, турнир или фильтр панели «Статистика»; игрок — это игрок данного фильтра. Размер — 10, 20 или 50 позиций. Каждая строка указывает своё семейство, свой счёт, если это позиция с кубом, покрываемую MWC и её причину: сколько ошибок и матчей она обобщает, размер её семейства среди ваших решений, её собственную возвращаемую часть, отрыв от второго выбора. Щелчок по строке открывает позицию; отмеченные флажки одним щелчком превращаются в коллекцию, колоду Anki или викторину. В командной строке: blunderdb collection suggest (см. collection — Управление коллекциями).

Уроки

Урок — это последовательность шагов, которую тренер пишет один раз для ученика и передаёт ему в файле базы (см. команду lesson export в Интерфейс командной строки (CLI)). У каждого шага есть заголовок и текст, и он может показывать коллекцию, позицию, и то и другое или ничего. Команда le выводит уроки базы в строке состояния; le 2 открывает урок 2; le edit открывает редактор уроков.

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

Флажок Шаг выполнен на панели отмечает текущий шаг как выполненный; повторный щелчок снимает отметку, а панель считает выполненные шаги. Это единственный жест, который что-либо записывает: чтение урока, смена шага или открытие урока ничего не сохраняют, ни достигнутый шаг, ни факт открытия. Отметка записывается в открытую базу, то есть в базу ученика, и ни один экспорт её не переносит. Импорт файла, содержащего урок, создаёт его; уже имеющийся урок с тем же именем не затрагивается.

Редактор уроков открывается командой le edit (le edit 2 для урока 2) или кнопкой Изменить на панели чтения. Слева — список уроков и поле для создания нового; справа — название и описание выбранного урока, затем его шаги. У каждого шага есть заголовок, текст, коллекция, выбранная из списка, и позиция: Текущая позиция прикрепляет к нему позицию, показанную на доске, Отвязать позицию убирает её. Сохранить шаг записывает его изменения; стрелки сдвигают его на одно место; Добавить шаг добавляет новый в конец. Читать закрывает редактор и открывает урок на первом шаге; Экспортировать как веб-страницу сохраняет урок в одном автономном HTML-файле (заголовок, описание, каждый шаг с текстом и доской, сохранённый анализ каждой позиции, свёрнутый как ответ викторины, происхождение водяного знака в нижнем колонтитуле), который можно публиковать как есть: в нём нет ни скриптов, ни сетевых вызовов; Удалить стирает урок и его шаги, не затрагивая коллекции и позиции, которые они показывали. Уроки можно также создавать и изменять из командной строки или через API (Уроки).

Резервная копия — экспорт всей библиотеки из окна экспорта или из командной строки — уносит все уроки. В окне экспорта строка Уроки выбирает их по одному: каждый отмеченный урок уходит с коллекциями и позициями, которые показывают его шаги, а файл может получить водяной знак или быть защищён паролем (.dbx), как любой экспорт. Без этого флажка частичный экспорт (выборка позиций, коллекций или матчей) уроки не уносит.