Exolve pode ajudá-lo a criar palavras cruzadas on-line interativamente solucionáveis (simples com blocos e/ou barras, bem como aquelas que são confusas, não têm diagramas ou são 3D, etc.) em qualquer idioma.
O arquivo exolve.html contém todo o código que você precisa: basta fazer uma cópia e depois substituir a parte que contém a grade de exemplo pela sua própria especificação do quebra-cabeça, começando na linha exolve-begin
e terminando na linha exolve-end
.
Os arquivos exolve-m.html, exolve-m.css, exolve-m.js têm o mesmo conteúdo que exolve.html, exceto que é dividido em partes separadas: HTML (incluindo a especificação do quebra-cabeça), CSS e JavaScript. Isso permite que JavaScript e CSS sejam reutilizados em vários quebra-cabeças.
Outra opção simples é usar apenas o arquivo exolve-m-simple.html: este é essencialmente uma cópia do exolve-m.html, mas não requer que você hospede os arquivos exolve-m.css e exolve-m.js , pois contém links para suas cópias mais recentes em um site que mantenho, hospedado no GitHub.
Outra opção é incorporar o quebra-cabeça Exolve em páginas da web arbitrárias (como postagens de blog) em um “widget”. Veja os detalhes na seção do widget Exolve.
O aplicativo da web Exolve Player pode ser usado para reproduzir arquivos de palavras cruzadas em vários formatos (incluindo .puz e até mesmo as pistas copiadas de um PDF em muitos casos). Um URL fácil de lembrar para este aplicativo da web é exolve.app.
Você também pode usar o arquivo exolve-embedder.html para servir arquivos .puz e .ipuz usando o Exolve. Veja os detalhes na seção Exolve Embedder.
Aqui está um exemplo da especificação do quebra-cabeça:
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
O formato é muito simples e usa texto simples (mas o código de análise também é ocasionalmente simplista e pouco tolerante, portanto, consulte a documentação do formato). O levantador tem a opção de fornecer soluções (como no exemplo acima) ou apenas usar 0 para indicar um quadrado que precisa ser preenchido (ou seja, faz parte de uma “luz”, em termos de palavras cruzadas).
Alguns exemplos de quebra-cabeças também estão incluídos neste diretório, cada um em um arquivo com a extensão ".exolve". Eles mostram alguns dos recursos disponíveis, como ninas, pistas ou perguntas adicionais, submissão, quebra-cabeças barrados, quebra-cabeças sem diagramas, etc. Para experimentar um deles, crie uma cópia de exolve.html e edite-a conforme descrito acima, emendando no arquivo .exolve inteiro de exolve-begin
a exolve-end
. Um conjunto completo de arquivos test-*.html também está disponível neste diretório. Eu os uso para testar novos lançamentos, mas você pode usá-los para ver exemplos de uso da maioria dos recursos do Exolve.
O controle básico é clicar em um quadrado e inserir uma letra nele. Se um quadrado fizer parte de uma pista transversal e de uma pista para baixo, clicar nesse quadrado enquanto ele for o quadrado atual (ou pressionar a tecla Enter) alternará a direção ativa (a menos que a tecla shift também seja pressionada com um clique , caso em que nenhuma alternância de direção acontecerá, o que é útil ao navegar de volta para a grade a partir de algum outro elemento de entrada).
Os botões de controle ( Clear this , Clear all! , Check this , Check all! , Reveal this , e Reveal all! ) funcionam conforme sugerido por seus nomes ("isto" refere-se à(s) luz(es) atualmente selecionada(s)). Você pode clicar em uma pista para pular para seus quadrados. Se o setter não forneceu todas as soluções, então apenas os botões de controle "Limpar isto/tudo" serão mostrados, os botões "Verificar/Revelar" não serão mostrados.
O botão “Limpar isto” a princípio limpa apenas letras que não cruzam outras luzes totalmente preenchidas, se houver. Se não houver nenhuma (ou seja, se todas as letras restantes na luz atual também cruzarem outras luzes totalmente preenchidas), somente então essas letras restantes serão apagadas.
Um clique longo em "Verificar isto" ou "Revelar isto" alternará o texto "isto" para "célula" e a verificação/revelação acontecerá apenas na célula atual (em oposição a toda a luz), por aquela ativação específica do botão. Advertência: isso não parece funcionar em telefones e tablets (embora testado apenas em dispositivos Android).
Os setters podem usar exolve-option
show-cell-level-buttons
para mostrar adicionalmente uma linha extra de botões contendo esses dois botões de nível de célula: "Verificar célula" e "Revelar célula".
Exolve suporta quebra-cabeças sem diagramas, onde os quadrados bloqueados não são identificados e o solucionador precisa descobrir suas localizações. Na verdade, exolve suporta quebra-cabeças parcialmente sem diagramas, onde apenas alguns quadrados ou algumas áreas parciais da grade não mostram onde estão os quadrados bloqueados. Ao resolver esse quebra-cabeça, o solucionador pode pressionar a barra de espaço em um quadrado sem diagrama para afirmar que é um quadrado bloqueado (o caractere do quadrado escuro, ⬛, será colocado nesse quadrado. Ele pode ser excluído como qualquer outra entrada regular ). Além disso, quando um usuário insere ou limpa um quadrado bloqueado em uma célula sem diagrama, a ação apropriada também será tomada no quadrado que é a contraparte simétrica do quadrado atual.
Se o levantador forneceu anotações anexando anotações no final de algumas pistas, então essas anotações serão mostradas quando o solucionador clicar em "Revelar tudo!". Anotações específicas de pistas são reveladas/ocultadas com os botões "Revelar/Limpar" (a menos que a pista tenha apenas células sem diagrama). Além disso, "Verifique isto" e "Verifique tudo!" comporte-se como "Revelar isto" e "Revelar tudo!" respectivamente, se não encontrarem erros. Num puzzle em que não são fornecidas soluções, o botão "Revelar isto" ainda será mostrado se houver alguma pista para a qual estejam presentes anotações (estas anotações podem ser soluções completas ou apenas dicas, possivelmente).
Se o setter forneceu a localização de um ou mais ninas (através das seções exolve-nina
), então um controle de botão adicional, Show ninas , é mostrado, para o solucionador ver onde os ninas estão. O botão pode ser clicado novamente para ocultar as localizações de nina. Ninas também são mostradas ao clicar em "Revelar tudo".
Se o levantador tiver feito perguntas adicionais no quebra-cabeça (por meio das seções de exolve-question
), os campos de entrada para elas também serão mostrados. Os botões de controle "Revelar/Limpar tudo" também incluem revelar/limpar respostas a essas perguntas, além de mostrar/ocultar annos/explicações/ninas.
Se o configurador configurou um URL de envio (com uma seção exolve-submit
- o URL pode ser configurado usando um Formulário Google, por exemplo), então há um botão Enviar .
Quando o solucionador insere uma letra em um quadrado, o cursor salta automaticamente para o próximo quadrado da pista atualmente ativa (o próximo quadrado pode ser de uma pista diferente, quando há pistas vinculadas que "cobrem" múltiplas pistas).
Se o solucionador alterar uma entrada de célula de uma letra que não esteja em branco para uma letra diferente que não esteja em branco, a letra alterada será destacada, mostrando uma cor diferente por um breve período. As cores de início/fim desta animação ( overwritten-start
e overwritten-end
) e a duração ( highlight-overwritten-seconds
) podem ser configuradas.
Se o solucionador pressionar a tecla delete, ele apagará o conteúdo do quadrado atual sem avançar.
O solucionador pode pressionar Tab/Shift-Tab para navegar para a pista seguinte/anterior. O solucionador pode usar as teclas de seta para navegar para as células de luz seguintes/anteriores na direção da seta.
O software tenta manter a pista atual visível durante a rolagem, desde que o quadrado com o cursor esteja visível.
Os botões "Limpar/Verificar/Revelar tudo", o botão "Mostrar ninas" e o botão "Enviar" solicitam confirmação adicional do solucionador.
Clicar em uma pista na tabela de pistas torna essa pista ativa. Se essa pista não for a pista ativa anteriormente, o foco do teclado vai para a primeira letra dessa pista, na grade. Se a pista já estiver ativa, o foco permanecerá na pista, permitindo que você selecione e copie partes da pista/ano, se necessário.
Você pode clicar no fundo preto ou no título do quebra-cabeça, no montador ou no preâmbulo (se houver) para desmarcar a pista atual (para impressão ou captura de tela, por exemplo).
Em alguns casos (como ao especificar cores ou ninas ou localizações de alguns números de pistas em quebra-cabeças sem diagramas), pode ser necessário especificar a localização de um quadrado na grade. Você pode fazer isso de uma das seguintes maneiras:
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)
As letras (az) devem ser minúsculas e preceder o número da linha, sem espaço entre elas.
Esta notação de tabuleiro de xadrez é insuficiente se sua grade tiver mais de 26 colunas. Você também pode especificar diretamente a linha e a coluna, assim:
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)
O quebra-cabeça pode conter as seguintes "seções" entre a linha exolve-begin
e a linha 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
Cada seção tem o nome da seção ( exolve-something
), seguido por dois pontos. Além das seções exolve-preamble
/ exolve-prelude
, exolve-grid
, exolve-across
, exolve-down
, exolve-nodir
, exolve-explanations
e exolve-postscript
, todas as outras seções ocupam uma única linha (algumas podem ser repetidas ). Para essas seções de linha única, o "valor" da seção é o texto após os dois pontos na mesma linha.
As seções em negrito, ou seja, exolve-width
, exolve-height
e exolve-grid
são obrigatórias. As outras seções são opcionais, mas exolve-across
, exolve-down
, exolve-title
, exolve-setter
provavelmente devem estar presentes na maioria dos quebra-cabeças.
Qualquer linha (ou parte final de uma linha) que comece com "#" é tratada como um comentário e ignorada. Um "#" com um fim de linha depois também é tratado como um comentário. Observe que um "#" com um caractere que não seja espaço depois NÃO é tratado como um somment (isso ocorre porque podemos ter nomes de cores HTML como #FF00FF em seções exolve-colour
, e podemos ter pistas de onde sua grade -location é indicado na notação #xN – consulte esta seção). Não usei "//" como marcador de comentário, pois é usado em URLs.
Qualquer texto que apareça antes exolve-begin
ou depois exolve-end
é inserido.
exolve-width
, exolve-height
A largura e a altura do quebra-cabeça – ou seja, quantos quadrados de largura e quantos quadrados de profundidade está a grade de palavras cruzadas. Exemplo:
exolve-width: 15
exolve-height: 15
exolve-grid
A especificação da grade começa na linha após a linha exolve-grid
e vai até a próxima seção exolve-something
. Deve haver exatamente tantas linhas nesta seção quanto a altura da grade. Em cada linha, são especificados os quadrados dessa linha da grade.
Existem dois tipos de quebra-cabeças: com soluções fornecidas e sem soluções fornecidas. Aqui estão exemplos simples de ambos:
Grade com soluções fornecidas:
exolve-grid:
ACE
R.R
EAR
Esta é uma grade 3x3 com um quadrado bloqueado no centro ("." é usado para indicar quadrados bloqueados). Nesta grade, 1 Across = ACE, 1 Down = ARE, 3 Down = ERR e 3 Across = EAR. Quando letras de solução são incluídas desta forma, os botões de controle para verificar/revelar respostas são mostrados.
Em uma grade com soluções fornecidas, os setters podem usar a letra '?' como um espaço reservado em qualquer quadrado claro para o qual ainda não tenham decidido qual letra colocar.
Grade sem soluções fornecidas:
exolve-grid:
000
0.0
000
Esta também é uma grade 3x3, mas nenhuma solução foi fornecida (cada luz é mostrada usando a letra “0”). Nessa grade, os botões de controle para verificar/revelar respostas não são mostrados.
Também é possível especificar grades barradas, em vez de grades bloqueadas. Na verdade, é possível especificar uma grade que utilize barras e blocos. As barras (e alguns outros tratamentos especiais) são especificadas usando letras que seguem o especificador de quadrado da grade principal, que chamaremos de decorators . Uma barra à direita de um quadrado é especificada usando o decorador |. Uma barra sob um quadrado é especificada usando o decorador _. Um quadrado que tenha uma barra depois e uma barra abaixo pode usar "|_" ou o atalho para isso, "+". São permitidos muitos espaços arbitrários entre as especificações dos quadrados da grade, e os espaços podem ( devem! ) ser usados para alinhar os quadrados na presença de decoradores. Aqui está um exemplo de grade 3x3 que usa barras e quadrados bloqueados:
exolve-grid:
A M|B
X . E
E|A T
O decorador "@" também pode ser usado para inscrever círculos dentro de alguns quadrados, e o decorador "*" pode ser usado para indicar que um quadrado não deve ter diagrama. Aqui está o último exemplo novamente, desta vez com círculos ao redor de algumas células e algumas células sem diagrama:
exolve-grid:
A M|@B
X* . E*
E| A T
O decorador "!" pode ser usado para marcar uma célula como pré-preenchida (sua letra de solução deve ser fornecida). A carta de solução será pré-preenchida e não poderá ser editada. Se todas as entradas em uma luz estiverem pré-preenchidas e um ano for fornecido para essa pista, o ano será mostrado automaticamente na inicialização. Mesmo que nenhum ano seja fornecido para uma pista totalmente pré-preenchida, a solução será exibida no final da pista (a menos que a opção no-auto-solution-in-anno esteja definida).
O decorador "~" pode ser usado para marcar uma célula que inicia uma pista transversal/para baixo como aquela em que a numeração normal da pista deve ser ignorada. Essa célula não recebe nenhum número de pista. O número da pista que teria obtido será usado para a próxima célula que inicia uma pista. As luzes que começam nessas células de "número ignorado" teriam que ser indicadas de alguma outra forma (por exemplo, com uma pista especificada ou revelada separadamente). Uma maneira de fornecer a pista é com uma pista nodir ou uma pista não rotulada numericamente, conforme descrito posteriormente.
Como referência conveniente, aqui está novamente a lista completa de decoradores:
Decorador | Significado |
---|---|
| | Tem um bar depois, à direita. |
_ | Tem uma barra embaixo. na parte inferior. |
+ | Possui barras posteriores e inferiores. |
@ | Possui um círculo inscrito. |
* | Não tem diagrama. |
! | Está pré-preenchido. |
~ | Ignora a numeração normal |
Se você usar uma linguagem/script que usa letras compostas compostas por vários caracteres Unicode (por exemplo, Devanagari - consulte a seção exolve-language
), ou se você tiver células rebus, então você deve separar as letras da grade (ao especificar uma grade com soluções) com um espaço (a menos que já estejam separados por um decorador). Por exemplo, isso não funcionará:
exolve-grid:
सेहत
Isso funcionará:
exolve-grid:
से ह त
Normalmente, apenas as letras do alfabeto (AZ ou específicas do script) podem ser usadas nas letras-solução. No entanto, usando exolve-option
allow-digits
ou allow-chars:<chars>
, você pode permitir alguns caracteres não alfabéticos. Se algum desses caracteres também for um decorador ou tiver um significado especial nas especificações da grade (ou seja, for um dos |_+@!~*.?
), então ele deverá ser prefixado com &
nas especificações da grade. Se o próprio &
precisar ser usado na grade, ele também deverá ser prefixado com um &
. Por exemplo:
exolve-option: allow-chars:@.&
exolve-grid:
A &@ B &. C O M
&& . . . . . .
Mesmo que 0
tenha um significado especial nas especificações da grade, você não precisa escapar 0
usando um prefixo &
se 0
tiver sido permitido na grade por meio de allow-digits
ou allow-chars
. Uma advertência técnica (para fins de integridade) é que você não pode criar uma grade degenerada que tenha todas as entradas compostas inteiramente de 0s
.
Se você deseja que a solução de palavras cruzadas inclua algumas células que possuem múltiplas letras (também conhecidas como "células rebus"), então você deve usar exolve-option: rebus-cells
(e você deve separar as entradas da solução de grade com espaços como mencionado anteriormente).
Por exemplo:
exolve-width: 3
exolve-height: 3
exolve-option: rebus-cells
exolve-grid:
RAN G E
DO . A
M E T
Se houver células rebus, você poderá inserir várias letras em qualquer célula clicando duas vezes nela ou pressionando a tecla Shift enquanto digita uma letra. Se uma célula já tiver inserido várias letras anteriormente, quando você acessá-la novamente (clicando nela ou avançando automaticamente a partir de uma célula adjacente), você poderá inserir várias letras nela (sem precisar usar a tecla Shift). ou clique duas vezes).
Quando várias letras são inseridas em uma célula, o tamanho da fonte do texto da célula é ajustado para tentar caber em todas as letras. Se você tiver algumas entradas rebus longas que não cabem no tamanho de célula padrão, você deve usar células maiores, usando exolve-cell-size
.
Se houver células rebus, a seta indicadora de direção transversal na célula atual será colocada abaixo do texto, à direita dele, para deixar mais espaço para o texto.
Você não pode ter células rebus em palavras cruzadas que usam idiomas com códigos máximos de caracteres maiores que um e em palavras cruzadas com células sem diagrama (isso nos permite manter o código mais simples).
Observe que a "falta de diagrama" apenas oculta do solucionador se um quadrado está iluminado ou bloqueado - se o levantador tiver usado alguma barra, ela será exibida ao solucionador, mesmo em células sem diagrama.
Se um quebra-cabeça com quadrados sem diagrama tiver especificado todas as soluções, os controles de verificação/revelação serão exibidos. Por exemplo, revelar um quadrado bloqueado sem diagrama mostrará o caractere quadrado escuro, ⬛, nesse quadrado.
Se o levantador não quiser fornecer soluções para um quebra-cabeça que tenha alguns quadrados sem diagrama, então o marcador de quadrado bloqueado (".") não deve ser usado nos quadrados bloqueados que também não têm diagrama (caso contrário, o solucionador pode atingir o código-fonte HTML e veja onde estão os quadrados bloqueados). Cada quadrado sem diagrama em tal quebra-cabeça deve ser especificado com um "0" seguido pelo decorador sem diagrama, ou seja, como "0*". Mas mesmo o software Exolve não tem como saber em qual quadrado da grade qualquer pista começa. No entanto, às vezes, mesmo em um quebra-cabeça com quadrados sem diagramas, o levantador pode querer fornecer os locais de início das pistas para algumas pistas. Exolve fornece uma maneira de fazer isso: o levantador pode opcionalmente incluir a localização da casa onde uma pista começa para qualquer pista, usando a notação estendida do tabuleiro de xadrez. Os detalhes são fornecidos na próxima seção.
exolve-title
, exolve-setter
O título do quebra-cabeça e o nome/pseudônimo do criador das palavras cruzadas. Exemplo:
exolve-title: My Lovely Crossword
exolve-setter: Narsi Sus
exolve-email
Endereço de e-mail opcional (ou endereços separados por vírgula) onde os solucionadores podem entrar em contato com o(s) criador(es) das palavras cruzadas. No painel "Notas", você pode enviar suas notas para este endereço de e-mail.
exolve-id
Opcionalmente, forneça um ID exclusivo para estas palavras cruzadas. Este id é usado como chave para salvar/restaurar o estado e também para distinguir entre vários quebra-cabeças em uma única página. Você pode criar uma versão não resolvida de um quebra-cabeça (para realizar um concurso, por exemplo) e, posteriormente, uma versão do mesmo quebra-cabeça que contém as soluções, dando a ambos o mesmo exolve-id
. Então, quando os solucionadores visitarem a versão com soluções, eles poderão ver suas próprias entradas e quais erros cometeram, se houver. Exemplo:
exolve-id: tiny-42
Se você não fornecer um ID, o software criará um a partir de uma assinatura da grade e das pistas. Isso garantirá que se você carregar as mesmas palavras cruzadas sem fazer nenhuma alteração nas pistas ou na grade, você recuperará o estado, mesmo sem um id explícito.
exolve-copyright
Se você fornecer isso, ele será exibido com o símbolo de copyright, sob a grade do quebra-cabeça renderizado. Exemplo:
exolve-copyright: 2019 Viresh Ratnakar
exolve-credits
Se você fornecer isso, ele será exibido sob direitos autorais. Você pode fornecer várias instâncias disso. Exemplo:
exolve-credits: Test solver: Zaphod Beeblebrox
exolve-credits: Custom code: H. A. C. Ker
exolve-preamble
, exolve-prelude
As palavras cruzadas geralmente vêm com um preâmbulo que contém instruções e/ou dicas especiais. O texto do preâmbulo ocupa várias linhas - começando na linha após a linha exolve-preamble
(ou exolve-prelude
) e descendo até a linha anterior à próxima seção exolve-something
. O preâmbulo pode incluir tags HTML. O preâmbulo é renderizado logo acima da grade, no quebra-cabeça renderizado. Exemplo:
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
As seções exolve-across
e exolve-down
devem ser usadas para especificar as pistas across e down, respectivamente ( exolve-nodir
é para o caso especial/raro de pistas que não possuem uma direção especificada; iremos descrevê-lo no final do esta seção). Deve haver uma pista por linha e não deve haver linhas em branco. As pistas devem começar com o número da pista e terminar com o enum (o enum não é estritamente obrigatório). Exemplo:
exolve-across:
1 Untouchable service (3)
3 Listener (3)
exolve-down:
1 Happen to be (3)
2 Make a mistake (3)
Se o enum indicar várias palavras (por exemplo, (4,3) ou (6 7) ), ou se o enum indicar palavras hifenizadas (por exemplo, (4-2) ), o limite da palavra ou o hífen será exibido em a grade, para ajudar os solucionadores. O software usa os seguintes critérios para decidir o que constitui a parte enum de uma pista: um par de parênteses de abertura e fechamento, contendo apenas números, hífens, vírgulas, apóstrofos, espaços e pontos, começando com um número. O software também trata um par de parênteses contendo o texto “palavras” ou “letras” (ou qualquer subpalavra que comece com “w” ou “l”, como “wrds” ou “l” ou “ltrs”) ou contendo “? " com qualquer coisa antes dele, como um enum (para permitir que o setter especifique o enum como "(duas palavras)" ou "(?)" ou "(7, 2w)", por exemplo). Dentro desses casos especiais, nos casos extremos de "(7, 2 palavras)" e "(6 letras)", a análise interpreta 7 e 6 respectivamente como o comprimento da entrada e irá compará-lo com o comprimento da luz como acontece com um enum normal.
No caso raro de haver múltiplas partes candidatas de enum em uma pista, a última é usada. No entanto, isso pode ser substituído usando explicitamente "[]" para marcar o final da pista (veja Annotations
abaixo).
Em palavras cruzadas 3-D, em vez de exolve-across
e exolve-down
você deve usar as seções exolve-3d-across
e exolve-3d-away
, respectivamente, com uma seção exolve-3d-down
fornecendo as pistas para as luzes verticais através as camadas. Você pode encontrar os detalhes na seção exolve-3d
.
Se o enum for imediatamente seguido por um *
, ele não será exibido ao usuário. Exemplos:
1 Satellite (4)* MOON
2 Star (?)*
Pode haver quebra-cabeças em que, mesmo que a enumeração indique palavras múltiplas ou hifenizadas, você não deseja que uma barra separadora de palavras ou um hífen sejam desenhados na grade. Um exemplo seria uma grade onde as instruções especiais pedem que uma letra seja removida antes de inserir uma solução na grade. Você pode conseguir esse efeito usando os seguintes truques:
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...
Observe que os números enum são agrupados em uma tag <span>, o que engana o Exolve para não analisá-los. O comprimento da entrada é especificado depois disso, usando o enum spec (15)* que não é exibido (mas serve como uma forma de informar ao Exolve que o que se segue é o ano).
Se houver uma pista faltando ou se o enum fornecido para uma pista não corresponder ao número de células na pista de acordo com a grade (incluindo quaisquer pistas filhas vinculadas), uma mensagem de aviso será mostrada. Se a anomalia for deliberada e não um descuido, a geração de aviso pode ser suprimida usando exolve-option: ignore-unclued
e/ou exolve-option: ignore-enum-mismatch
. A verificação de pistas ausentes não é feita se houver alguma pista nodir, e a verificação de enumerações incompatíveis não é feita se houver células sem diagrama.
Você pode incluir dicas em pistas (em algumas pistas ou em todas as pistas). Isso é feito fornecendo uma sequência de linhas imediatamente abaixo da pista, cada uma carregando o prefixo Hint:
(sem distinção entre maiúsculas e minúsculas). Cada dica pode incluir formatação HTML. Exemplo:
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?
Observe que essas dicas são completamente independentes da anotação pós-revelação descrita abaixo (se presente). Quando dicas estão disponíveis para a pista atual, e nem todas as dicas ainda foram mostradas, um ícone de lâmpada é mostrado no final da pista (apenas acima da grade, não na tabela de dicas). Clicar neste ícone revelará a próxima dica. Clicar em qualquer dica ocultará todas as dicas novamente.
Exolve não salva o estado sobre quantas dicas foram mostradas para várias pistas, portanto, se você recarregar o quebra-cabeça, todas as dicas serão reiniciadas no estado não mostrado.
Em uma grade com soluções fornecidas, o levantador pode incluir anotações para explicar como funciona uma pista ou para fornecer dicas. Qualquer texto localizado após o enum em uma pista é tratado como anotação. A anotação é exibida quando o solucionador clica no botão "Revelar tudo" ou no botão "Revelar isto" quando essa pista é a pista atual. Exemplo:
exolve-across:
28 Replace bottles containing questionable medicine (7) Def: questionable medicine. Hidden word: (-re)PLACE BO(-ttles).
Se uma pista não fornecer seu ano, o software ainda cria um ano mínimo que consiste apenas no texto da solução (que ele infere da grade e da enumeração). Mesmo que o ano seja fornecido, o software o prefixa com o texto da solução inferida. Isso pode significar que se em uma grade mais antiga a solução fosse incluída explicitamente no ano, ela teria sido duplicada. Portanto, o código verifica se a string da solução (apesar da pontuação/marcação) está presente no início do ano e evita duplicá-la se estiver. Se o levantador quiser apresentar a solução de alguma outra forma, ele pode suprimir a adição automática da solução ao ano adicionando esta linha às especificações do quebra-cabeça:
exolve-option: no-auto-solution-in-anno
Esta opção apenas suprime a adição da solução ao ano que aparece após a pista. A solução ainda é adicionada ao espaço reservado em branco de uma pista órfã, em "Revelar isto", mesmo com esta opção.
Se a parte inicial do anno precisar ser algo entre colchetes, como "... (6) [t]WITTER ...," então os setters devem incluir a solução antes disso (mesmo que possa ser inferida a partir do grade), para evitar interpretar mal a parte inicial como a solução, como "... (6) [WITTER] [t]WITTER ..." Ou, eles podem usar um par vazio de colchetes para marcar o final da pista , como "... (6) [] [t]WITTER ..." A string especial "[]" do marcador de final de pista também é útil se houver alguma ambigüidade sobre onde a pista termina (talvez por causa de múltiplas substrings semelhantes a enum) que não pode ser resolvida fornecendo a solução entre colchetes.
Aqui estão alguns exemplos mais complexos de análise de enum/anotação.
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)
Você também pode decorar subfrases na pista com sublinhados, diferentes estilos, cores, planos de fundo, etc., colocando substrings específicas com marcadores especiais, ~{
e }~
, assim:
28 Replace bottles containing ~{questionable medicine}~ (7) Hidden word: (-re)PLACE BO(-ttles).
O estilo padrão para essas "anotações in-clue" é sublinhar o texto com um sublinhado "verde escuro". Este estilo será revelado quando o solucionador clicar em "Revelar isto" ou "Revelar tudo" (e será limpo com "Limpar isto/tudo").
Você pode aplicar diferentes estilos de anotação na pista (em vez de sublinhar), fornecendo um nome de classe de elemento HTML, como este:
28 ~{{xlv-blue}Replace}~ bottles ~{{my-style}containing}~ ~{questionable medicine}~ (7) Hidden word: (-re)PLACE BO(-ttles).
Aqui, "xlv-blue" é um nome de classe que a Exolve configurou em seu CSS (alguns outros são "xlv-red", "xlv-yellow-bg" e "xlv-pink-bg"). Mas você também pode usar seus próprios nomes de classe (como "my-style" acima) e especificar seus estilos com suas próprias regras CSS personalizadas.
Se uma pista vinculada incluir outras "pistas secundárias", isso pode ser indicado anexando uma lista separada por vírgula (ou separada por &) de números de pistas secundárias ao número da pista principal. Exemplo:
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
Conforme mostrado nos exemplos acima, se uma pista filha (2d no primeiro exemplo) tiver uma direção diferente da pista pai, a direção pode ser especificada com um sufixo de uma letra ("a" ou "d" ou "b" ou "u") ou, em palavras cruzadas 3-D, com um sufixo de duas letras ("ac" ou "aw" ou "dn" ou "ba" ou "to" ou "up").
A ligação das luzes pode criar dois casos de canto que são dignos de nota. (1) Quando uma luz termina na mesma célula onde começa a próxima luz vinculada, essa célula não é contada duas vezes. Portanto, em uma grade 3x3 com luzes de 3 letras 1a e 2d vinculadas, onde 2d começa na mesma célula onde 1a termina (célula r3c3), o comprimento total das luzes vinculadas seria 5 e não 6. (2) Se você vincular uma sequência de luzes (incluindo algumas luzes invertidas) de modo que a última célula do grupo vinculado seja exatamente sua célula inicial, então essa célula também não será contada duas vezes. Além disso, a interface permite que você digite letras em um loop ao longo da sequência (pois isso parece ser a coisa divertida de se fazer neste caso). Para retroceder (ao apagar) células em um grupo vinculado em loop que engole a própria cabeça, a interface interrompe o retrocesso na primeira célula.
Durante a resolução, quando uma luz é totalmente preenchida, seu número de pista muda de cor (para um tom claro de azul, fazendo com que os números de pista não resolvidos se destaquem). Existem algumas pequenas exceções quando isso não acontece (células sem diagrama ou outros motivos que não nos permitem determinar quando a luz de uma pista está totalmente preenchida). Para tais pistas, o solucionador pode clicar no número da pista para definir (ou desmarcar) seu estado "resolvido" manualmente.
Conforme mencionado na seção anterior, em uma grade que possui quadrados sem diagrama e que não fornece soluções, se o levantador quiser exibir alguns números de pistas em quadrados, ele pode fazê-lo anexando a pista (no exolve-across
ou exolve- seção inferior) com "#<L>", onde <L> é a localização do quadrado na notação estendida do tabuleiro de xadrez. Exemplos:
exolve-across:
#a9 15 Imprison and tie perhaps
#c17r42 31 Greeting
Aqui, a pista número 15 será exibida no quadrado que está na primeira coluna e na 9ª linha a partir de baixo, e 31 será exibida na 17ª coluna e na 31ª linha.
Qualquer linha em uma seção de dicas (ou seja, em exolve-across
/ exolve-down
/ exolve-nodir
) que não pode ser analisada como uma pista ou dica é tratada como uma linha de preenchimento. Ele é simplesmente exibido nessa posição na lista de pistas. É um erro colocar uma linha de preenchimento após a última pista em uma seção de pistas. Linhas de preenchimento podem ser usadas para demarcar seções nas pistas, se necessário. Exemplo:
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)
Qualquer linha em uma seção de pistas que comece com --- inicia a renderização de uma nova tabela de pistas. Se algum texto seguir --- então ele será mostrado como o título da nova tabela.
A ordem em que as seções exolve-across, exolve-down e exolve-nodir aparecem nas especificações do quebra-cabeça é a ordem em que serão exibidas. Além disso, a alternância de direção também seguirá a mesma sequência. Assim, se você listar pistas nodir antes das pistas transversal e inferior, e o solucionador clicar em uma célula que não tem uma luz na direção atualmente ativa (digamos Across), mas tem uma luz nodir e uma luz transversal passando por ela , a luz nodir se tornará ativa (já que as pistas nodir são listadas antes nas pistas nas especificações).
Se quiser usar rótulos de dicas não numéricos (como A, B, C, etc.), você pode fazer isso colocando o rótulo de dicas não numéricos entre colchetes, assim: Exemplo:
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)
...
Para rótulos de pistas não numéricos, o software não sabe em qual célula a pista começa, a menos que seja especificado explicitamente pelo levantador usando um prefixo "#xN" conforme descrito acima e mostrado no quarto exemplo de pista acima.
Um ponto final após um número de pista ou rótulo é considerado apenas um sinal de pontuação e é ignorado. Os primeiros cinco períodos no exemplo a seguir são ignorados. Se você tiver períodos consecutivos, eles não serão ignorados (já que você provavelmente está usando reticências).
2. Clue (4)
3.Ignorance is _____ (5)
4 . Time for every one to end, finally (6)
[Q.]. Hop... (4)
[R] ... aboard! (6)
Os números das pistas transversais e descendentes dentro da grade são inferidos automaticamente a partir da grade, exceto em dois casos. A primeira é quando há células sem diagramas e as soluções não foram fornecidas. A segunda é em quebra-cabeças do tipo quebra-cabeça, onde o levantador opta deliberadamente por não fornecer associações entre quadrados da grade e pistas, usando rótulos de pistas não numéricos sem fornecer suas localizações na grade. Quando o solucionador está inserindo um valor em uma luz para a qual a associação da pista não é conhecida, a interface navegável da "pista atual" destacada percorre todas as pistas para as quais todas as células da grade não são conhecidas.
A numeração das pistas pode ser afetada pelos seguintes fatores adicionais abordados em outras seções:
exolve-grid
.exolve-reversals
exolve-3d
Se você deseja criar uma seção de pistas sem uma direção transversal/para baixo especificada, você pode usar uma seção exolve-nodir
, que tem a mesma estrutura que exolve-across
e exolve-down
, mas a direção de cada pista nesta seção é considerado não especificado. Os setters provavelmente gostariam de usar esta seção com rótulos de dicas não numéricos. Exemplo:
exolve-nodir:
[P] Direct (5)
[Q] Server spilling one's drink (5)
...
O rótulo da pista em [] também pode ser numérico (como [42]), e a célula inicial também pode ser especificada usando um prefixo "#<l>" (com <l> sendo uma localização da célula na notação de tabuleiro de xadrez estendido) como descrito acima.
Se o setter estiver usando rótulos ou pistas de pistas freiras sem uma direção especificada, eles provavelmente também deverão usar a opção "N-Numbers inferidos" em uma seção exolve-option
. Como alternativa, eles podem usar o decorador "~" na grade para pular a numeração das células usando numeração normal.
Você pode fornecer um título para a seção Nodir, colocando-o após exolve-nodir:
como este:
exolve-nodir: Alphabetic clues
[P] Direct (5)
[Q] Server spilling one's drink (5)
...
Em uma pista do NODIR, você pode especificar não apenas a célula inicial, mas todas as células usando a notação do quadro de xadrez. Se você fizer isso, clicar em uma célula nessa pista destacará e permitirá a entrada em todas as células para essa pista (as células em uma pista de Nodir podem ser espalhadas arbitrariamente na grade). Exemplo:
exolve-nodir:
#c3 #c5 #c8 #f6 [A] One hundred years lived in prison (4)
Observe que essa técnica pode ser usada para criar quebra-cabeças multidimensionais (como 4-D!): Use uma seção NODIR para especificar luzes ao longo de todas as dimensões extras, especificando explicitamente suas células. Para palavras cruzadas em 3D, o Exolve fornece suporte melhor e mais completo, incluindo uma boa aparência em 3D (consulte a seção exolve-3d
).
Se uma célula inicial de uma pista contada com o decorador "~", sua numeração normal será ignorada. Se houver outra pista que seja uma pista interna com um rótulo não numérico e com sua célula inicial especificada, ou é uma pista de Nodir com todas as células especificadas, e todas as células das duas pistas são as mesmas, então As pistas são fundidas. A etiqueta especificada para a segunda pista é mostrada na célula de número pulado. Por exemplo:
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]
Aqui, as células superior esquerda e inferior esquerda são células de número pulado. O [b] na pista é fundido com a luz da linha inferior, e a pista [q] nodir é fundida com a luz da linha superior. A luz na primeira coluna não é fundamentada.
Se houver alguma pista de Nodir sem células especificadas explicitamente, ou uma pista interna/descendente com um rótulo não numérico cuja partida/células não são especificadas, a pista será mostrada com uma área de entrada de texto ao lado. Os solucionadores podem registrar suas soluções aqui, até descobrirem onde na grade essas cartas devem ser inseridas. Os solucionadores podem transferir cartas gravadas dessas áreas de espaço reservado, simplesmente clicando no botão "Copy-totrounds" (que se parece com [⇲]) ao lado da área de espaço reservado, sempre que eles têm alguns quadrados destacados para entrada na grade.
Você pode forçar um espaço reservado em branco a aparecer após qualquer pista (não apenas os "órfãos" que se qualificam usando os critérios listados acima). Veja a próxima subseção.
As entradas de espaço reservado não são liberadas com 'limpo isso/tudo' (elas podem simplesmente apagadas diretamente clicando nelas e excluindo). Para limpar todas as entradas de espaço reservado, clique no botão 'Limpar tudo' quando não houver entradas na grade (por exemplo, clicando nele pela segunda vez). Esta opção existe apenas em quebra -cabeças que possuem essas entradas de espaço reservado e, em tais quebra -cabeças, uma dica de ferramenta é mostrada sobre o botão 'Clear All' para informar o usuário.
O mesmo texto de espaço reservado e o botão Copy-Placeholder ([⇲]) também são mostrados no widget de pistas 'órfãos' roláveis destacados, sempre que os quadrados atualmente elevados não têm uma associação de pista conhecida.
O recurso de botão de copiário não é ativado se houver células sem diagrama (pois apenas uma célula sem diagrama está ativa por vez em geral).
Os botões Copy-PlaceTring podem ser desativados (ou seja, não mostrados) especificando exolve-option: hide-copy-placeholder-buttons
. Isso é útil se você encontrar os botões que se distraem na aparência, ou se a cópia do espaço reservado não for muito útil por algum outro motivo (por exemplo, as luzes são divididas em partes).
Dentro de tais pistas, em grades com soluções fornecidas, é possível indicar quais células na grade pertencem à pista, para uso em "Revelar th This" e "Verifique isto". Isso é feito listando entre colchetes uma sequência separada por espaço de índices de pista e/ou locais de células. Os índices de pista podem ser como 12A ou 12A ou 13D ou 13D (devem incluir direção, assim como a maneira como são especificados em exolve-nina
e exolve-colour
). Se algum índices de pista for usado na sequência especificada, essas pistas devem ter alguns de seus locais celulares conhecidos. Esta listagem deve estar presente logo após a parte enum, se é que existe. Exemplos:
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...
Na última pista acima, não há enumeração fornecida. Embora o software conheça todas as células dessa pista, ele não sabe se existem várias palavras ou hífens. A solução nesses casos pode ser fornecida entre colchetes no início do ano.
A solução inferida ou fornecida para uma pista órfã é revelada em seu espaço reservado em branco sobre "revelar isso" e "revelar tudo".
As células listadas individualmente, se destacadas apenas por elas mesmas (o que seria o caso se forem sem diagrama) não permitir que os solucionadores revelem/verifiquem toda a pista órfã: uma única célula pode fazer parte de múltiplas pistas.
Existem algumas implicações sutis de fornecer revelações para pistas órfãs dessa maneira. No exemplo acima, diga uma luz na grade (como 1a) que pertence a alguma pista órfã (A neste caso) é destacada clicando em uma de suas células. A pista atual mostrada na lista de pistas será a última pista órfã que o solucionador analisou, digamos B (diferente de A). Se o solucionador clicar "revelar isso", o 1A será revelado na grade, e um será destacado na lista de pistas.
Se, depois de clicar em 1A na grade, digamos que o solucionador clique na pista c na lista de pistas e clique "Revele isto". Inferimos a intenção do solucionador do último clique. Nesse caso, C na lista de pistas será revelado, e o destaque na grade mudará de 1A para qualquer que seja a luz correta para C.
Outro ponto sutil é que, em um quebra -cabeça com células sem diagrama, é possível que uma pista tenha especificado algumas de suas células (as primeiras), mas não todas. Suas células podem ser reveladas se nomeando e listando as células adicionais. Por exemplo:
15 Imprison and tie perhaps (one word) [15a e9 f9] DETAIN.
Observe também que "revelar tudo" não revela associações órfãs de luz-luz-luz. Mas, mesmo depois de "revelar tudo", os solucionadores podem passar por pistas órfãs, clicando em "revelar isso" para cada um.
Um ardil comum em criptografia é fazer cada pista de alguma forma produzir uma letra extra e fazer uma meta dessas letras. O Exolve permite adicionar uma coluna de "slots de extração" antes de cada pista. Os solucionadores podem gravar letras/números nesses slots (e estes também são salvos no estado). Você pode fazer isso especificando exolve-option: add-extraction-slots
. Por padrão, se você especificar esta opção, será adicionado um slot de uma letra. Mas você pode especificar o número de letras no slot com um parâmetro opcional (por exemplo, exolve-option: add-extraction-slots:3
).
Os espaços em espaços em branco normalmente são exibidos apenas na frente de pistas "órfãs" cujos locais de luz não são fornecidos ao solucionador. No entanto, você pode forçar um espaço reservado em branco ao lado de qualquer pista, seguindo -o com um ou mais sublinhados. Se você estiver fornecendo anotações, coloque os não -rores antes das anotações.
Isso pode ser útil para solucionadores quando, por exemplo, as instruções do quebra -cabeça exigem alguma modificação (como omissões de letras) para soluções antes que possam ser inseridas na grade.
Exemplos:
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.
Se você colocar apenas um sublinhado, o tamanho real exibido do branco será determinado usando a enumeração. Se você colocar mais de um subl, o tamanho exibido do espaço em branco será igual ao número de sublinhamentos que você forneceu. Você pode ter espaços entre esses sublinhados apenas para ajudá -lo a contá -los com mais facilidade.
O espaço reservado em branco, quando vazio, mostrará (como o texto de "espaço reservado" cinza claro que indica uma dica para o que o solucionador precisa entrar) o padrão de texto implícito na enumeração, como "???-??-??" para (3, 3-3). Você pode substituir esse texto de espaço reservado especificando o que deve ser exibido entre colchetes, logo após o último sublinhado. Por exemplo:
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]
O comprimento de um espaço reservado em branco (o número de letras que ele pode conter) será o máximo do número de sublinhamentos e o comprimento do texto de espaço reservado cinza (da enumeração ou do texto substituído).
Assim como os espaços em branco de espaço reservado que aparecem em pistas órfãs, esses espaços em branco forçados também serão acompanhados por "Botões de copiário" (que se parecem [⇲]), a menos que