Exolve может помочь вам создавать онлайн-кроссворды, которые можно решать в интерактивном режиме (простые с блоками и/или полосками, а также беспорядочные, бессхемные, трехмерные и т. д.) на любом языке.
Файл exolve.html содержит весь необходимый вам код: просто скопируйте его, а затем замените часть, содержащую пример сетки, на вашу собственную спецификацию головоломки, начиная со строки exolve-begin
и заканчивая строкой exolve-end
.
Файлы exolve-m.html, exolve-m.css, exolve-m.js имеют то же содержимое, что и exolve.html, за исключением того, что оно разделено на отдельные части: HTML (включая спецификацию головоломки), CSS и JavaScript. Это позволяет повторно использовать JavaScript и CSS в нескольких головоломках.
Другой простой вариант — просто использовать файл exolve-m-simple.html: по сути это копия exolve-m.html, но он не требует размещения файлов exolve-m.css и exolve-m.js. , поскольку он ссылается на их последние копии на поддерживаемом мной веб-сайте, размещенном на GitHub.
Еще один вариант — встроить головоломку Exolve в произвольные веб-страницы (например, сообщения в блогах) в «виджете». Подробности смотрите в разделе виджетов Exolve.
Веб-приложение Exolve Player можно использовать для воспроизведения файлов кроссвордов в нескольких форматах (включая .puz и во многих случаях даже просто подсказки, скопированные из PDF-файла). Легко запоминающийся URL-адрес этого веб-приложения — exolve.app.
Вы также можете использовать файл exolve-embedder.html для обслуживания файлов .puz и .ipuz с помощью Exolve. Подробности смотрите в разделе Exolve Embedder.
Вот пример спецификации головоломки:
exolve-begin
exolve-width: 5
exolve-height: 5
exolve-grid:
HELLO
O.A.L
WORLD
L.G.E
STEER
exolve-across:
1 Greeting (5)
4 Earth (5)
5 Guide (5)
exolve-down:
1 Emits cry (5)
2 Big (5)
3 More ancient (5)
exolve-end
Формат очень простой и использует простой текст (но код синтаксического анализа иногда бывает упрощенным и не очень щадящим, поэтому ознакомьтесь с документацией по формату). У установщика есть возможность предоставить решения (как в примере выше) или просто использовать 0 для обозначения квадрата, который необходимо заполнить (т. е. является частью «света» в терминах кроссворда).
В этот каталог также включено несколько примеров головоломок, каждый в файле с расширением «.exolve». Они демонстрируют некоторые доступные функции, такие как нины, дополнительные подсказки или вопросы, отправку, головоломки с решеткой, головоломки без диаграмм и т. д. Чтобы попробовать одну из них, создайте копию exolve.html и отредактируйте ее, как описано выше, вставив в нее весь файл .exolve от exolve-begin
до exolve-end
. В этом каталоге также доступен целый набор файлов test-*.html. Я использую их для тестирования новых выпусков, но вы можете использовать их, чтобы увидеть примеры использования большинства функций Exolve.
Основное управление — нажать на квадрат и ввести в него букву. Если квадрат является частью как поперечной, так и нижней подсказки, то щелчок по этому квадрату, пока он является текущим квадратом (или нажатие клавиши Enter), переключит активное направление (если клавиша Shift также не нажата с щелчком). , и в этом случае переключение направления не произойдет, что полезно при переходе обратно к сетке из какого-либо другого элемента ввода).
Кнопки управления ( Очистить это , Очистить все!, Проверить это , Проверить все!, Показать это и Показать все! ) работают так, как следует из их названий («это» относится к выбранным в данный момент источникам света)). Вы можете нажать на подсказку, чтобы перейти к ее квадратам. Если установщик не предоставил все решения, то отображаются только кнопки управления «Очистить/все», кнопки «Проверить/Показать» не отображаются.
Кнопка «Очистить» сначала удаляет только те буквы, которые не пересекают другие полностью заполненные индикаторы, если таковые имеются. Если их нет (т. е. если все оставшиеся буквы текущего источника света также пересекают другие полностью заполненные источники света), только тогда эти оставшиеся буквы будут очищены.
Длинное нажатие на «Проверить это» или «Показать это» переключит текст «это» на «ячейку», и тогда проверка/показ будет происходить только в текущей ячейке (в отличие от всего света), для именно эта активация кнопки. Предостережение: похоже, это не работает на телефонах и планшетах (хотя тестировалось только на устройствах Android).
Установщики могут использовать show-cell-level-buttons
exolve-option
, чтобы дополнительно отобразить дополнительную строку кнопок, содержащую эти две кнопки уровня ячейки: «Проверить ячейку» и «Показать ячейку».
Exolve поддерживает головоломки без диаграмм, в которых заблокированные квадраты не идентифицируются, и решатель должен выяснить их расположение. Фактически, exolve поддерживает головоломки, частично лишенные диаграмм, где только некоторые квадраты или некоторые частичные области сетки не показывают, где находятся заблокированные квадраты. Решая такую головоломку, решатель может нажать пробел в квадрате без диаграммы, чтобы утверждать, что это заблокированный квадрат (символ темного квадрата ⬛ будет помещен в этот квадрат. Его можно удалить, как и любую другую обычную запись. ). Кроме того, когда пользователь входит или очищает заблокированный квадрат в ячейке без диаграммы, соответствующее действие также будет предпринято в квадрате, который является симметричным аналогом текущего квадрата.
Если установщик предоставил аннотации, добавив аннотации в конце некоторых подсказок, то эти аннотации будут показаны, когда решатель нажмет «Показать все!». Аннотации, специфичные для подсказки, открываются/скрываются с помощью кнопок «Показать/Очистить это» (если только подсказка не содержит только ячеек без диаграмм). Кроме того, «Проверить это» и «Проверить все!» вести себя как «Раскрой это» и «Раскрой все!» соответственно, если они не найдут ошибок. В головоломке, в которой решения не указаны, кнопка «Показать это» все равно будет отображаться, если есть какие-либо подсказки, для которых присутствуют аннотации (эти аннотации могут быть полными решениями или, возможно, просто подсказками).
Если установщик указал местоположение одного или нескольких нинов (через разделы exolve-nina
), то отображается дополнительный элемент управления « Показать нины» , чтобы решатель мог увидеть, где находятся нины. Кнопку можно нажать еще раз, чтобы скрыть местоположения Нины. Нинас также отображается при нажатии «Показать все».
Если установщик задал дополнительные вопросы в головоломке (через разделы exolve-question
), то поля ввода для них также отображаются. Кнопки управления «Показать/Очистить все» также включают в себя показ/удаление ответов на эти вопросы, помимо показа/скрытия аннотаций/объяснений/нин.
Если установщик настроил URL-адрес отправки (с разделом exolve-submit
— URL-адрес можно настроить, например, с помощью формы Google), то есть кнопка «Отправить» .
Когда решатель вводит букву в квадрат, курсор автоматически переходит к следующему квадрату для текущей активной подсказки (следующий квадрат может быть из другой подсказки, если есть связанные подсказки, которые «покрывают» несколько подсказок).
Если решатель меняет запись ячейки с непустой буквы на другую непустую букву, то эта измененная буква на короткое время выделяется другим цветом. Цвета начала/конца этой анимации ( overwritten-start
и overwritten-end
) и продолжительность ( highlight-overwritten-seconds
) можно настроить.
Если решатель нажмет клавишу удаления, он сотрет содержимое текущего квадрата, не продвигаясь вперед.
Решатель может нажать Tab/Shift-Tab, чтобы перейти к следующей/предыдущей подсказке. Решатель может использовать клавиши со стрелками для перехода к следующим/предыдущим световым ячейкам в направлении стрелки.
Программное обеспечение пытается сохранить видимость текущей подсказки при прокрутке, пока виден квадрат с курсором.
Кнопки «Очистить/Проверить/Показать все», кнопка «Показать нины» и кнопка «Отправить» запрашивают дополнительное подтверждение от решателя.
Нажатие на подсказку в таблице подсказок делает ее активной. Если эта подсказка не была ранее активной подсказкой, то фокус клавиатуры перемещается на первую букву этой подсказки в сетке. Если подсказка уже была активна, фокус остается на подсказке, позволяя при необходимости выбирать и копировать части подсказки/аннотации.
Вы можете щелкнуть по черному фону или по названию головоломки, установщику или преамбуле (если она есть), чтобы отменить выделение текущей подсказки (например, для печати или создания снимков экрана).
В некоторых случаях (например, при указании цвета или нины или расположения некоторых номеров подсказок в головоломках без диаграмм) вам может потребоваться указать расположение квадрата в сетке. Вы можете сделать это одним из следующих способов:
a3 (column "a": the 1st column from the left, and row 3 from the bottom)
f11 (column "f": the 6th column from the left, and row 11 from the bottom)
Буквы (az) должны быть в нижнем регистре и должны предшествовать номеру строки без пробелов.
Это обозначение шахматной доски недостаточно, если ваша сетка имеет более 26 столбцов. Вы также можете напрямую указать строку и столбец, например:
c1r3 (the 1st column from the left, and row 3 from the bottom)
r11c6 (the 6th column from the left, and row 11 from the bottom)
Головоломка может содержать следующие «разделы» между линией exolve-begin
и линией exolve-end
:
exolve-width
exolve-height
exolve-grid
exolve-title
exolve-setter
exolve-email
exolve-id
exolve-copyright
exolve-credits
exolve-preamble
/ exolve-prelude
exolve-across
exolve-down
exolve-nodir
exolve-reversals
exolve-3d
exolve-3d-across
exolve-3d-away
exolve-3d-down
exolve-explanations
exolve-nina
exolve-colour
/ exolve-color
exolve-question
exolve-submit
exolve-option
exolve-language
exolve-relabel
exolve-maker
exolve-force-hyphen-right
exolve-force-hyphen-below
exolve-force-bar-right
exolve-force-bar-below
exolve-cell-size
exolve-postscript
Каждый раздел имеет имя раздела ( exolve-something
), за которым следует двоеточие. За исключением разделов exolve-preamble
/ exolve-prelude
, exolve-grid
, exolve-across
, exolve-down
, exolve-nodir
, exolve-explanations
и exolve-postscript
, все остальные разделы занимают одну строку (хотя некоторые из них могут повторяться). ). Для таких однострочных разделов «значением» раздела является текст, следующий за двоеточием в той же строке.
Разделы, выделенные жирным шрифтом, а именно exolve-width
, exolve-height
и exolve-grid
, являются обязательными. Остальные разделы не являются обязательными, но exolve-across
, exolve-down
, exolve-title
, exolve-setter
, вероятно, должны присутствовать в большинстве головоломок.
Любая строка (или конечная часть строки), начинающаяся с «#», рассматривается как комментарий и игнорируется. Знак «#» с концом строки после него также рассматривается как комментарий. Обратите внимание, что символ «#» с символом, отличным от пробела, после него НЕ рассматривается как соммент (это так, потому что у нас могут быть имена цветов HTML, такие как #FF00FF, в разделах exolve-colour
, и у нас могут быть подсказки, в которых их сетка -местоположение указывается в обозначении #xN — см. этот раздел). Я не использовал «//» в качестве маркера комментария, поскольку он используется в URL-адресах.
Любой текст, появляющийся до exolve-begin
или после exolve-end
учитывается.
exolve-width
, exolve-height
Ширина и высота головоломки, т. е. сколько квадратов поперек и сколько квадратов внизу составляет сетка кроссворда. Пример:
exolve-width: 15
exolve-height: 15
exolve-grid
Спецификация сетки начинается со строки , следующей за строкой exolve-grid
, и продолжается до следующего раздела exolve-something
. В этом разделе должно быть ровно столько строк, сколько высота сетки. В каждой строке указаны квадраты в этой строке сетки.
Есть два вида головоломок: с предоставленными решениями и без предоставленных решений. Вот простые примеры того и другого:
Сетка с предоставленными решениями:
exolve-grid:
ACE
R.R
EAR
Это сетка 3x3 с одним заблокированным квадратом в центре («.» используется для обозначения заблокированных квадратов). В этой сетке 1 поперек = ACE, 1 поперек = ARE, 3 поперек = ERR и 3 поперек = EAR. Если буквы с решениями включены таким образом, отображаются кнопки управления для проверки/показания ответов.
В таблице с предоставленными решениями установщики могут использовать букву «?». в качестве заполнителя в любом светлом квадрате, для которого еще не решили, какую букву разместить.
Представлена сетка без решений:
exolve-grid:
000
0.0
000
Это тоже сетка 3х3, но решения не предоставлено (каждый источник света показан буквой «0»). В такой сетке не отображаются кнопки управления проверкой/показом ответов.
Также можно указать запрещенные сетки вместо заблокированных. Фактически, можно указать сетку, в которой используются как стержни, так и блоки. Столбцы (и некоторые другие специальные методы) обозначаются буквами, которые следуют за основным спецификатором квадрата сетки, которые мы будем называть декораторами . Полоса справа от квадрата задается с помощью декоратора |. Полоса под квадратом задается с помощью декоратора _. Квадрат, у которого есть полоса после и полоса под ней, может использовать «|_» или ярлык для этого «+». Между спецификациями квадратов сетки допускается произвольное количество пробелов, и пробелы могут ( должны! ) использоваться для выравнивания квадратов в присутствии декораторов. Вот пример сетки 3x3, в которой используются как столбцы, так и заблокированные квадраты:
exolve-grid:
A M|B
X . E
E|A T
Декоратор «@» также можно использовать для вписания кругов внутрь некоторых квадратов, а декоратор «*» можно использовать для указания того, что квадрат должен быть лишен диаграмм. Вот еще раз последний пример, на этот раз с кружками вокруг некоторых ячеек, а некоторые ячейки не имеют диаграмм:
exolve-grid:
A M|@B
X* . E*
E| A T
Декоратор "!" может использоваться для пометки ячейки как предварительно заполненной (необходимо указать букву решения). Письмо с решением будет предварительно заполнено и недоступно для редактирования. Если все записи в индикаторе предварительно заполнены и для этой подсказки имеется аннотация, аннотация будет отображаться автоматически при запуске. Даже если для полностью предварительно заполненной подсказки не указано аннотирование, решение будет отображаться в конце подсказки (если не установлена опция «нет автоматического решения в аннотации»).
Декоратор «~» можно использовать, чтобы пометить ячейку, с которой начинается подсказка поперек/вниз, как ячейку, в которой следует пропустить обычную нумерацию подсказок. Такая ячейка не имеет подсказки. Номер подсказки, который он должен был получить, вместо этого будет использоваться для следующей ячейки, с которой начинается подсказка. Свет(ы), которые начинаются в таких ячейках с «пропущенным числом», должны быть обозначены каким-либо другим способом (например, с помощью подсказки, которая указывается или раскрывается отдельно). Один из способов предоставления подсказки — это подсказка нодир или подсказка без цифровой маркировки, как описано ниже.
Для удобства привожу полный список декораторов:
Декоратор | Значение |
---|---|
| | После него, справа, есть полоса. |
_ | Под ним есть бар. внизу. |
+ | Есть решетки как сзади, так и снизу. |
@ | Имеет вписанный круг. |
* | Бессхемный. |
! | Заполнено заранее. |
~ | Пропускает обычную нумерацию |
Если вы используете язык/скрипт, в котором используются составные буквы, состоящие из нескольких символов Юникода (например, деванагари — см. раздел exolve-language
), или если у вас есть ячейки ребуса, вам необходимо разделить буквы сетки (при указании сетки с помощью решения) с пробелом (если они уже не разделены декоратором). Например, это не сработает:
exolve-grid:
सेहत
Это будет работать:
exolve-grid:
से ह त
Обычно в буквах решения можно использовать только буквы алфавита (AZ или алфавита). Однако, используя exolve-option
allow-digits
илиallow allow-chars:<chars>
, вы можете разрешить использование некоторых неалфавитных символов. Если какой-либо из этих символов также является декоратором или имеет особое значение в спецификациях сетки (т. е. является одним из |_+@!~*.?
), то в спецификациях сетки к нему должен быть добавлен префикс &
. Если в сетке необходимо использовать &
, то перед ним тоже следует поставить префикс &
. Например:
exolve-option: allow-chars:@.&
exolve-grid:
A &@ B &. C O M
&& . . . . . .
Несмотря на то, что 0
имеет особое значение в спецификациях сетки, вам не нужно экранировать 0
с помощью префикса &
, если 0
разрешен в сетке с помощью allow-digits
или allow-chars
. Техническое предостережение (для полноты картины): вы не можете создать вырожденную сетку, в которой все записи полностью состоят из 0s
.
Если вы хотите, чтобы решение кроссворда включало некоторые ячейки с несколькими буквами (так называемые «ячейки ребуса»), вам нужно использовать exolve-option: rebus-cells
(и вам нужно разделить записи решения сетки пробелами, как упоминалось ранее).
Например:
exolve-width: 3
exolve-height: 3
exolve-option: rebus-cells
exolve-grid:
RAN G E
DO . A
M E T
Если есть ячейки ребуса, то в любую ячейку можно ввести несколько букв, дважды щелкнув по ней, или нажав клавишу Shift при вводе буквы. Если в ячейке ранее уже было введено несколько букв, то при повторном подходе к ней (нажатием на нее или автопереходом от соседней ячейки) вы сможете ввести в нее несколько букв (без использования клавиши Shift). или дважды щелкните).
Когда в ячейку вводится несколько букв, размер шрифта текста ячейки корректируется так, чтобы поместить все буквы. Если у вас есть длинные записи ребуса, которые не соответствуют размеру ячейки по умолчанию, вам следует использовать ячейки большего размера, используя exolve-cell-size
.
Если есть ячейки ребуса, то стрелка указателя поперечного направления в текущей ячейке размещается под текстом справа от него, чтобы оставить больше места для текста.
Вы не можете использовать ячейки ребуса в кроссвордах, в которых используются языки с максимальным числом символов больше единицы, а также в кроссвордах с ячейками без диаграмм (это позволяет нам упростить код).
Обратите внимание, что «бездиаграмма» скрывает от решателя только то, находится ли квадрат в освещении или является заблокированным квадратом - если установщик использовал какие-либо полосы, они действительно отображаются для решателя, даже в ячейках без диаграмм.
Если в головоломке с квадратами без диаграмм указаны все решения, то отображаются элементы управления «проверить/показать». Например, если открыть заблокированный квадрат без диаграммы, в этом квадрате появится символ темного квадрата ⬛.
Если установщик не хочет предоставлять решения для головоломки, в которой есть несколько квадратов без диаграмм, тогда маркер заблокированного квадрата («.») не должен использоваться в заблокированных квадратах, которые также не имеют диаграмм (в противном случае решатель может обратиться к исходному коду HTML и посмотрите, где находятся заблокированные квадраты). Каждый бесдиаграммный квадрат в такой головоломке должен быть указан с помощью «0», за которым следует бездиаграммный декоратор, т. е. как «0*». Но даже программа Exolve не может узнать, в каком квадрате сетки начинается какая-либо подсказка. Однако иногда, даже в головоломке с квадратами без диаграмм, установщик может захотеть указать начальные местоположения подсказок для некоторых подсказок. Exolve предоставляет способ сделать это: установщик может дополнительно включить местоположение квадрата, где начинается подсказка для любой подсказки, используя расширенную нотацию шахматной доски. Подробности представлены в следующем разделе.
exolve-title
, exolve-setter
Название загадки и имя/псевдоним составителя кроссворда. Пример:
exolve-title: My Lovely Crossword
exolve-setter: Narsi Sus
exolve-email
Необязательный адрес электронной почты (или адреса, разделенные запятыми), по которым решатели могут связаться с создателями кроссвордов. С панели «Заметки» вы можете отправлять свои заметки на этот адрес электронной почты.
exolve-id
При желании укажите уникальный идентификатор для этого кроссворда. Этот идентификатор используется как ключ для сохранения/восстановления состояния, а также для различения нескольких головоломок на одной странице. Вы можете создать нерешённую версию головоломки (например, для проведения конкурса), а затем версию той же головоломки, в которой есть решения, присвоив им одинаковый exolve-id
. Затем, когда решатели посещают версию с решениями, они могут видеть свои собственные записи и видеть, какие ошибки они допустили, если таковые имеются. Пример:
exolve-id: tiny-42
Если вы не предоставите идентификатор, программа создаст его на основе подписи сетки и подсказок. Это гарантирует, что если вы загрузите тот же кроссворд, не внося никаких изменений в подсказки или сетку, вы восстановите состояние даже без явного идентификатора.
exolve-copyright
Если вы это предоставите, оно будет отображаться с символом авторского права под отображаемой сеткой головоломки. Пример:
exolve-copyright: 2019 Viresh Ratnakar
exolve-credits
Если вы это предоставите, оно будет отображаться под авторскими правами. Вы можете предоставить несколько экземпляров этого. Пример:
exolve-credits: Test solver: Zaphod Beeblebrox
exolve-credits: Custom code: H. A. C. Ker
exolve-preamble
, exolve-prelude
Кроссворды часто имеют преамбулу, содержащую специальные инструкции и/или подсказки. Текст преамбулы занимает несколько строк — начиная со строки после строки exolve-preamble
(или exolve-prelude
) и заканчивая строкой, предшествующей следующему разделу exolve-something
. Преамбула может включать HTML-теги. Преамбула отображается прямо над сеткой в визуализированной головоломке. Пример:
exolve-preamble:
Words should be entered in the grid <i>after</i> deleting one letter. The
letters thus deleted, in clue order, form the name of a famous farm
animal.
exolve-across
, exolve-down
, exolve-nodir
Разделы exolve-across
и exolve-down
следует использовать для указания подсказок поперек и вниз соответственно ( exolve-nodir
предназначен для особого/редкого случая подсказок, которые не имеют определенного направления; мы опишем это в конце этот раздел). В каждой строке должна быть одна подсказка, пустых строк быть не должно. Подсказки должны начинаться с номера подсказки и заканчиваться перечислением (перечисление не является строго обязательным). Пример:
exolve-across:
1 Untouchable service (3)
3 Listener (3)
exolve-down:
1 Happen to be (3)
2 Make a mistake (3)
Если перечисление указывает на несколько слов (например, (4,3) или (6 7) ) или если перечисление указывает на слова, написанные через дефис (например, (4-2) ), то граница слова или дефис отображаются в сетка, чтобы помочь решателям. Программное обеспечение использует следующие критерии, чтобы решить, что представляет собой перечисляемую часть подсказки: пара открывающих и закрывающих круглых скобок, содержащих только цифры, дефисы, запятые, апострофы, пробелы и точки, начинающиеся с цифры. Программное обеспечение также обрабатывает пару круглых скобок, содержащих текст «слова» или «буквы» (или любые подслова, начинающиеся с «w» или «l», например «wrds», «l» или «ltrs») или содержащие «? " с чем-либо перед ним, как перечисление (чтобы позволить установщику указать перечисление как «(два слова)» или «(?)» или «(7, 2w)», например). В этих особых случаях, в угловых случаях «(7, 2 слова)» и «(6 букв)», синтаксический анализ интерпретирует 7 и 6 соответственно как длину записи и сверяет ее с длиной индикатора. как и в обычном перечислении.
В том редком случае, когда в подсказке имеется несколько кандидатов-частей перечисления, используется последняя. Однако это можно переопределить, явно указав «[]» для обозначения конца подсказки (см. Annotations
ниже).
В трехмерном кроссворде вместо exolve-across
и exolve-down
вы должны использовать разделы exolve-3d-across
и exolve-3d-away
соответственно, при этом раздел exolve-3d-down
дает подсказки для вертикальных источников света через слои. Подробности вы можете найти в разделе exolve-3d
.
Если за перечислением сразу следует *
, оно не отображается пользователю. Примеры:
1 Satellite (4)* MOON
2 Star (?)*
Могут возникнуть головоломки, в которых, хотя перечисление указывает на несколько слов или слов, разделенных дефисом, вы не хотите, чтобы в сетке отображалась полоса-разделитель слов или дефис. Примером может служить сетка, в которой специальные инструкции требуют удаления буквы перед вводом решения в сетку. Добиться такого эффекта можно, используя следующую хитрость:
1 Clue with enum that implies hyphens and dashes, but they are suppressed
using trickery (<span>3,2-2,5-3</span>) (15)* Anno here...
Обратите внимание, что числа перечисления заключены в тег <span>, что заставляет Exolve не анализировать их. После этого длина записи указывается с использованием спецификации перечисления (15)*, которая не отображается (но служит способом сообщить Exolve, что далее следует анно).
Если подсказка отсутствует или если указанное перечисление для подсказки не соответствует количеству ячеек в подсказке согласно сетке (включая любые связанные дочерние подсказки), то отображается предупреждающее сообщение. Если аномалия является преднамеренной, а не недосмотром, генерацию предупреждения можно подавить с помощью exolve-option: ignore-unclued
и/или exolve-option: ignore-enum-mismatch
. Проверка отсутствия подсказок не выполняется, если есть какие-либо подсказки nodir, а проверка несовпадающих перечислений не выполняется, если есть ячейки без диаграмм.
Вы можете включать подсказки в подсказки (в некоторые подсказки или во все подсказки). Это делается путем предоставления последовательности строк непосредственно под подсказкой, каждая из которых содержит префикс Hint:
(без учета регистра). Каждая подсказка может включать форматирование HTML. Пример:
exolve-across:
1 Some clue without a hint (9)
5 A clue with two hints (5)
Hint: The <i>first</i> hint!
Hint: The second hint is noticeably longer.
6 A clue with one snarky hint (6)
Hint: Try using your brain for a change?
Обратите внимание, что эти подсказки полностью независимы от аннотации после раскрытия, описанной ниже (если она присутствует). Если для текущей подсказки доступны подсказки и еще не все подсказки показаны, в конце подсказки отображается значок лампочки (только над сеткой, а не в таблице подсказок). Нажав на этот значок, вы увидите следующую подсказку. Нажатие на любую подсказку снова скроет все подсказки.
Exolve не сохраняет состояние о том, сколько подсказок было показано для различных подсказок, поэтому, если вы перезагрузите головоломку, все подсказки перезапустятся в неотображаемом состоянии.
В сетке с предоставленными решениями установщик может включать аннотации для объяснения того, как работает подсказка, или для предоставления подсказок. Любой текст, расположенный после перечисления в подсказке, рассматривается как аннотация. Аннотация отображается, когда решатель нажимает кнопку «Показать все» или кнопку «Показать это», если эта подсказка является текущей подсказкой. Пример:
exolve-across:
28 Replace bottles containing questionable medicine (7) Def: questionable medicine. Hidden word: (-re)PLACE BO(-ttles).
Если подсказка не содержит аннотации, программа все равно создает минимальную аннотацию, состоящую только из текста решения (который она выводит из сетки и перечисления). Даже если аннотация указана, программа добавляет к ней предполагаемый текст решения. Это могло означать, что если бы в более старой сетке решение было явно включено в анно, оно бы дублировалось. Таким образом, код проверяет, присутствует ли строка решения (несмотря на пунктуацию/разметку) в начале аннотации, и избегает ее дублирования, если это так. Если установщик хочет представить решение каким-либо другим способом, он может запретить автоматическое добавление решения в анно, добавив следующую строку в спецификацию головоломки:
exolve-option: no-auto-solution-in-anno
Эта опция только подавляет добавление решения в аннотацию, появляющуюся после подсказки. Решение по-прежнему добавляется в пустой слот потерянной подсказки при нажатии «Показать это», даже с этой опцией.
Если ведущей частью аннотации должно быть что-то в квадратных скобках, например «... (6) [t]WITTER ...», то установщикам следует включить решение перед этим (даже если его можно вывести из сетке), чтобы избежать ошибочной интерпретации ведущей части как решения, например «... (6) [WITTER] [t]WITTER ...» Или они могут использовать пустую пару квадратных скобок, чтобы отметить конец подсказки. , типа "... (6) [] [t]WITTER ...» Специальная строка маркера конца подсказки «[]» также полезна, если существует какая-либо двусмысленность относительно того, где заканчивается подсказка (возможно, из-за нескольких подстрок, подобных перечислению), которую невозможно разрешить путем предоставления решения. в квадратных скобках.
Вот несколько более сложных примеров анализа перечислений/аннотаций.
1 This (13) clue ends (word) here! (4)
2 This (13) clue also ends (1 word) here! (4) Some annotation follows.
3 This (13) clue also ends (2 letters) here! (8) [SOLUTION] Some annotation follows.
4 This (13) clue also ends (words) here! (8) [] [t]WITTER The anno has (3) enum-like parts.
5 This is an enum-less and anno-less clue that ends here!
6 This is also an enum-less and anno-less clue that also ends here! (?)*
7 This is also an enum-less but with-anno clue that also ends here! (?)* [] [t]WITTER Here is the anno.
8 This clue, even though its anno contains an enum-like substring, ends here! (4) The (word) and (4 letters) enum-like parts here are not numeric.
9 This clue (13) does not end now (4) as [square brackets do not follow immediately]; it ends here! (4)
Вы также можете украсить подфразы в подсказке подчеркиванием, разными стилями, цветами, фоном и т. д., заключая определенные подстроки специальными маркерами ~{
и }~
, например:
28 Replace bottles containing ~{questionable medicine}~ (7) Hidden word: (-re)PLACE BO(-ttles).
По умолчанию для таких «внутренних аннотаций» текст подчеркивается «темнозеленой» линией. Этот стиль будет показан, когда решатель нажмет «Показать это» или «Показать все» (и будет очищен с помощью «Очистить это/все»).
Вы можете применять различные стили аннотаций в подсказках (вместо подчеркивания), указав имя класса элемента HTML, например:
28 ~{{xlv-blue}Replace}~ bottles ~{{my-style}containing}~ ~{questionable medicine}~ (7) Hidden word: (-re)PLACE BO(-ttles).
Здесь «xlv-blue» — это имя класса, которое Exolve установило в своем CSS (некоторые другие — «xlv-red», «xlv-yellow-bg» и «xlv-pink-bg»). Но вы также можете использовать свои собственные имена классов (например, «my-style» выше) и указать их стили с помощью собственных правил CSS.
Если связанная подсказка включает в себя другие «дочерние подсказки», это можно указать путем добавления списка номеров дочерних подсказок, разделенных запятыми (или &), к номеру родительской подсказки. Пример:
exolve-across:
1, 5, 2d In spite of adverse circumstances (7,3,4)
5 See 1 Across
...
exolve-down:
2 See 1 Across
3 & 7 See neck (4,3)
7 See 3 Down
Как показано в приведенных выше примерах, если дочерняя подсказка (2d в первом примере) имеет направление, отличное от родительского, направление можно указать с помощью однобуквенного суффикса («a», «d», «b» или «u») или, в трехмерных кроссвордах, с двухбуквенным суффиксом («ac», «aw», «dn», «ba», «to» или «up»).
Соединение источников света может создать два примечательных угловых случая. (1) Когда свет заканчивается в той же ячейке, где начинается следующий связанный свет, эта ячейка не учитывается дважды. Таким образом, в сетке 3x3 со связанными трехбуквенными огнями 1a и 2d, где 2d начинается в той же ячейке, где заканчивается 1a (ячейка r3c3), общая длина связанных огней будет равна 5, а не 6. (2) Если вы соедините последовательность огней (включая некоторые перевернутые огни) так, чтобы последняя ячейка связанной группы была в точности ее начальной ячейкой, тогда эта ячейка также не учитывается дважды. Кроме того, интерфейс позволяет вам вводить буквы в цикле в определенной последовательности (поскольку это кажется забавным занятием в данном крайнем случае). Для возврата (при стирании) ячеек в такой циклически связанной группе «змея проглатывает свою голову» интерфейс останавливает возврат на шаг в первой ячейке.
Во время решения, когда свет полностью заполняется, его номер подсказки меняет цвет (на светлый оттенок синего, благодаря чему неразгаданные номера подсказок выделяются). Есть некоторые незначительные исключения, когда этого не происходит (ячейки без диаграмм или другие причины, которые не позволяют нам определить, когда индикатор подсказки полностью заполнится). Для таких подсказок решатель может щелкнуть номер подсказки, чтобы установить (или отменить) ее состояние «решено» вручную.
Как упоминалось в предыдущем разделе, в сетке, которая имеет квадраты без диаграмм и не предоставляет решений, если установщик хочет отобразить некоторые номера подсказок в квадратах, он может сделать это, добавив подсказку (в exolve-across
или exolve-). нижний раздел) с помощью «#<L>», где <L> — расположение клетки в расширенной нотации шахматной доски. Примеры:
exolve-across:
#a9 15 Imprison and tie perhaps
#c17r42 31 Greeting
Здесь подсказка номер 15 будет отображаться в квадрате, который находится в первом столбце и 9-й строке снизу, а подсказка 31 будет отображаться в 17-м столбце и 31-й строке.
Любая строка в разделе подсказок (т. е. в exolve-across
/ exolve-down
/ exolve-nodir
), которую нельзя проанализировать как подсказку или подсказку, рассматривается как строка-заполнитель. Он просто отображается в этом месте в списке подсказок. Размещать строку-заполнитель после последней подсказки в разделе подсказок является ошибкой. При необходимости линии-заполнители можно использовать для разграничения разделов внутри подсказок. Пример:
exolve-across:
1 Communication device (5)
7 Greeting (5)
<i>The following entries all begin with B.</i>
9 Unreachable sound in 1 (4,4)
15 Zaphod (10)
Любая строка в разделе подсказок, начинающаяся с ---, инициирует отрисовку новой таблицы подсказок. Если за --- следует какой-либо текст, он отображается как заголовок новой таблицы.
Порядок, в котором разделы exolve-cross, exolve-down и exolve-nodir появляются в спецификациях головоломки, является порядком, в котором они будут отображаться. Кроме того, переключение направления также будет следовать той же последовательности. Таким образом, если вы перечислите подсказки nodir перед подсказками поперек и вниз, и решатель щелкнет по ячейке, в которой нет света в текущем активном направлении (скажем, поперек), но есть как свет nodir, так и поперечный свет, проходящий через нее , индикатор нодира станет активным (поскольку подсказки нодира перечислены ранее в подсказках в спецификациях).
Если вы хотите использовать нечисловые метки подсказок (например, A, B, C и т. д.), вы можете сделать это, заключив нечисловую метку подсказки в квадратные скобки, например: Пример:
exolve-across:
2 Imprison and tie perhaps (6)
[F] Enjoyable (3)
5 Hitchhiker's accessory (5)
#a12 [G], 4, [H] Fitting reply (3,3,3)
...
Для нечисловых меток подсказки программное обеспечение не знает, в какой ячейке начинается подсказка, если только это не указано явно установщиком с использованием префикса «#xN», как описано выше и показано в четвертом примере подсказки выше.
Завершающая точка после номера или метки подсказки считается просто знаком препинания и игнорируется. Первые пять периодов в следующем примере игнорируются. Если у вас есть последовательные менструации, они не игнорируются (поскольку вы, вероятно, используете многоточие).
2. Clue (4)
3.Ignorance is _____ (5)
4 . Time for every one to end, finally (6)
[Q.]. Hop... (4)
[R] ... aboard! (6)
Номера подсказок поперек и вниз внутри сетки автоматически выводятся из сетки, за исключением двух случаев. Первый — когда имеются ячейки без диаграмм и решения не предоставлены. Второй - это головоломки в стиле мозаики, где установщик предпочитает намеренно не обеспечивать связи между квадратами сетки и подсказками, используя нечисловые метки подсказок без указания их местоположения в сетке. Когда решатель вводит значение в источник света, для которого неизвестна ассоциация подсказок, выделенный интерфейс просмотра «текущая подсказка» просматривает все подсказки, для которых не известны все ячейки сетки.
На нумерацию подсказок могут влиять следующие дополнительные факторы, описанные в других разделах:
exolve-grid
.exolve-reversals
exolve-3d
Если вы хотите создать раздел подсказок без указания направления поперек/вниз, вы можете использовать раздел exolve-nodir
, который имеет ту же структуру, что и exolve-across
и exolve-down
, но направление каждой подсказки в этом разделе считается неопределенным. Сеттеры, вероятно, захотят использовать этот раздел с нечисловыми метками подсказок. Пример:
exolve-nodir:
[P] Direct (5)
[Q] Server spilling one's drink (5)
...
Метка подсказки в [] также может быть цифровой (например, [42]), и начальная ячейка также может быть указана с использованием префикса «#<l>» (с расположением <l> в растянутой шахматной нотации) Как описано выше.
Если сеттер использует монахин-цифровые метки или подсказки без указанного направления, то они, вероятно, также должны использовать опцию «скрытые номеры» в разделе exolve-option
. В качестве альтернативы, они могут использовать декоратор «~» в сетке, чтобы пропустить нумерацию ячеек, используя нормальную нумерацию.
Вы можете предоставить заголовок для разделения Nodir, поместив его после exolve-nodir:
как это:
exolve-nodir: Alphabetic clues
[P] Direct (5)
[Q] Server spilling one's drink (5)
...
В подсказке Nodir вы можете указать не только начальную ячейку, но и все ячейки, использующие нотацию шахматной доски. Если вы сделаете это, то нажатие на ячейку в этой подсказке выделит и разрешит въезд во все ячейки для этой подсказки (клетки в подсказке Nodir можно произвольно разбросано в сети). Пример:
exolve-nodir:
#c3 #c5 #c8 #f6 [A] One hundred years lived in prison (4)
Обратите внимание, что этот метод может быть использован для создания многомерных (например, 4-D!) Головоломок: используйте раздел Nodir для конкретных светильников вдоль всех дополнительных измерений, четко указав их ячейки. Для трехмерных кроссвордов Exolve обеспечивает лучшую и более полную поддержку, в том числе хороший трехмерный вид (см. Раздел exolve-3d
).
Если ячейка старта -подсказки через/вниз имеет декоратор «~», ее нормальная нумерация пропускается. Если есть другая подсказка, которая является либо подсказкой через/вниз с нечеровой меткой, а также с указанной ячейкой начала, либо является подсказкой Nodir со всеми указанными ее ячеек, и все ячейки двух подсказок одинаковы, тогда Подсказки объединяются. Метка, указанная для второй подсказки, отображается в ячейке пропущенной номера. Например:
exolve-grid:
0~0 0
0 . 0
0~0 0
exolve-across:
#a1 [B] Bottom row (3)
exolve-down:
1 Third column (3)
exolve-nodir:
#a3 #b3 #c3 [Q] Top row [3]
Здесь верхние левые и нижние левые клетки представляют собой пропущенные ячейки. [B] через подсказку объединяется с светом нижнего ряда, а подсказка Nodir [q] объединяется с светом верхнего ряда. Свет в первом столбце не раскололся.
Если есть какая-то подсказка NODIR без явных ячеек или подсказка через/вниз с немировальной меткой, начало/ячейки, ячейки не указаны, то подсказка показана с областью ввода текста рядом с ним. Решатели могут записывать свои решения здесь, пока они не выясняют, где в сетке должны быть введены эти буквы. Решатели могут переносить записанные буквы из этих областей заполнителей, просто нажав кнопку «Копионный держатель» (которая выглядит как [⇲]) рядом с областью заполнителей, всякий раз, когда у них есть несколько квадратов, выделенных для входа в сетку.
Вы можете заставить заполнителя появиться после любой подсказки (не только «сирота», которые имеют право на использование критериев, перечисленных выше). Смотрите следующую подраздел.
Записи заполнителей не очищаются с помощью «Очистить это/все» (они могут просто стерто напрямую, нажав на них и удаляя). Для применения всех записей заполнителей нажмите кнопку «Очистить все», когда в сетке нет записей (например, нажав на нее во второй раз). Этот вариант есть только в головоломках, которые имеют такие записи заполнителей, и в таких головоломках отображается подсказка на кнопке «Очистить все», чтобы сообщить пользователю.
Тот же тот же текст заполнителя и кнопка «Копировать» ([[⇲]) также отображаются в выделенном виджете Orphan 'Orphan' Clues, всякий раз, когда в настоящее время высокопоставленные квадраты не имеют известной ассоциации подсказки.
Функция кнопки «Копировать» не активируется, если есть какие-либо диаграммы (так как в целом активна только одна ячейка без диаграммы).
Кнопки «Копировать» могут быть отключены (т.е., вообще не показаны) путем указания exolve-option: hide-copy-placeholder-buttons
. Это полезно, если вы обнаружите, что кнопки отвлекают по внешнему виду, или если копирование из заполнителя не очень полезна по какой -то другой причине (например, свет разделяется на части).
В рамках таких подсказок в сетях с предоставленными растворами можно указать, какие ячейки в сетке принадлежат к подсказке, для использования в «раскрыть это» и «проверить это». Это делается путем перечисления в квадратных скобках, разделенной космической последовательности индексов подсказки и/или местоположения ячеек. Индексы подсказки могут быть похожи на 12a или 12a или 13d или 13d (должны включать направление, точно так же, как они указаны в exolve-nina
и exolve-colour
). Если какие -либо индексы подсказки используются в указанной последовательности, то сами подсказки должны известны некоторые из их клеточных мест. Этот список должен присутствовать сразу после части Enum, если вообще. Примеры:
exolve-nodir:
[A] Some clue (5) [1a]
[B] One hundred years lived in prison (4) [2d]
[C] Some other clue ... (?) [3d 4a c4 c5 r5c3] [SOLUTION HERE] Anno...
В последней подсказке выше не предоставлено перечисление. Несмотря на то, что программное обеспечение знает все ячейки этой подсказки, оно не знает, есть ли несколько слов или дефисов. Решение в таких случаях может быть предоставлено в квадратных скобках в начале Anno.
Предполагаемое или предоставленное решение для подсказки -сироты раскрывается в его заполнителе на «раскрыть это» и «раскрыть все».
Индивидуально перечисленные ячейки, если они выделены сами по себе (что было бы так, если они без диаграммы) не позволяют решателям раскрывать/проверять целую подсказку для сирот: одна ячейка может быть частью множества подсказок.
Существуют некоторые тонкие последствия предоставления откровений для сирот подсказками таким образом. В приведенном выше примере, скажем, свет в сетке (например, 1a), который принадлежит какой -то подсказке для сирот (в данном случае), подчеркивается нажатием на одну из ее ячеек. Текущая подсказка, показанная в списке подсказок, будет последней подсказкой для сирот, что решатель посмотрел, скажем, B (отличается от а). Если решатель нажимает «раскрыть это», то 1A будет раскрыто в сетке, и A будет выделен в списке подсказок.
Если, нажав на 1А в сетке, скажем, решатель нажимает подсказку C в списке подсказок, а затем нажимает «Раскрыть это». Мы выводим намерение решателя из их последнего щелчка. В этом случае C в списке подсказок будет обнаружено, а выделение в сетке изменится от 1a на то, что является правильным светом для C.
Другая тонкая точка заключается в том, что в головоломке с без диаграмм ячейки можно было бы указать некоторые из ее ячеек (первые несколько), но не все. Его клетки могут быть выявлены путем именования и перечисления дополнительных ячеек. Например:
15 Imprison and tie perhaps (one word) [15a e9 f9] DETAIN.
Также обратите внимание, что «раскрывать все» не раскрывает ассоциации с сиротой-подсветкой. Но даже после того, как «раскрыть все», решатели могут пройти подсказки для сирот, щелкнув «Раскрыть это» для каждого.
Распространенная уловка в криптике - это сделать каждую подсказку каким -то образом дать дополнительную букву и сделать мета из этих букв. Exolve позволяет вам добавить столбец «слотов извлечения» перед каждой подсказкой. Решатели могут записывать буквы/числа в этих слотах (и они также сохраняются в состоянии). Вы можете сделать это, указав exolve-option: add-extraction-slots
. По умолчанию, если вы указываете эту опцию, то добавляется один буквенной слот. Но вы можете указать количество букв в слоте с помощью дополнительного параметра (например, exolve-option: add-extraction-slots:3
).
Запасы заполнителей обычно отображаются только перед подсказками «Сирота», чьи световые местоположения не предоставляются решателю. Тем не менее, вы можете заставить заполнителя запустить рядом с любой подсказкой, следуя по ней с одним или несколькими подчеркиваниями. Если вы предоставляете аннотации, поместите Unescrores перед аннотациями.
Это может быть полезно для решателей, когда, например, инструкции головоломки требуют некоторой модификации (например, упущения буквы) для решений, прежде чем они могут быть введены в сетку.
Примеры:
exolve-across:
5 This clue will get placeholder blanks (4) _
6 Here we're specifying that there should be 7 blanks, regardless of enum (4) _______
7 The underscores can have intervening spaces and can be followed by annos (8) _ _ _ Some anno.
Если вы разместите только одно подчеркивание, то фактический отображаемый размер заготовки будет определяться с помощью перечисления. Если вы разместите более одного подчеркивания, то отображаемый размер заготовки будет равным количеству предоставленных вами недостатков. Вы можете иметь места между этими подчеркиваниями, чтобы помочь вам более легко сосчитать их.
Бланк заполнителя, когда он пуст, покажет (как светло-серый текст «заполнителя», который указывает на подсказку, на что нужно ввести решатель), текстовый шаблон, подразумеваемый перечислением, такой как "??? ??-??" " Для (3, 3-3). Вы можете переопределить этот текст заполнителя, указав, что должно отображаться в квадратных скобках, сразу после последнего подчеркивания. Например:
exolve-down:
3 This will have 8 placeholder blanks showing "??? ??" instead of
"????" (4) _ _ _ _ _ _ _ _ [??? ??] Some anno.
3 For this piece of cake, we customize the placeholder text shown
in the placeholder blank to be "EAT ME" instead of "??? ??" (3,2) _[EAT ME]
Длина заполнителя заполнителя (количество букв, которые он может держать), будет максимум числа подчеркиваний и длины текста серого заполнителя (из перечисления или из переопределенного текста).
Так же, как закулистые закупочки, которые появляются в подсказках-сирот, эти принудительные закулистые заготовки также будут сопровождаться «кнопками-копиями кнопок» (это похоже на [⇲]), если не детсаблен