Todo quebra-cabeça do Griductive faz uma promessa ousada: você nunca precisará adivinhar. Cada célula pode ser determinada apenas por lógica, e cada quebra-cabeça tem exatamente uma resposta correta.
Isso não é uma meta de design — é uma garantia matemática, aplicada pela mesma classe de solucionador usada em pesquisa operacional e verificação de chips. Este artigo explica como.
Por Que a Unicidade Importa
Se um quebra-cabeça tem duas soluções válidas, deve existir pelo menos uma célula onde tanto Suspeito quanto Inocente satisfazem todas as pistas. Nessa célula, nenhum raciocínio pode dizer qual é o correto — você teria que adivinhar. Adivinhar viola o contrato fundamental de um quebra-cabeça de dedução.
Então o gerador não apenas produz quebra-cabeças que por acaso têm uma solução. Ele prova que nenhuma segunda solução existe antes que um quebra-cabeça seja publicado.
O Pipeline de Cinco Fases
Cada quebra-cabeça do Griductive é construído através de um pipeline de cinco fases. Veja o que acontece em cada etapa.
Fase 1: Gerar uma Solução Aleatória
O gerador começa criando uma grade de solução válida — uma atribuição aleatória de Suspeito e Inocente para cada célula. Esta é a verdade fundamental que o jogador eventualmente deduzirá.
Neste ponto, nenhuma pista existe ainda. O tabuleiro é apenas uma configuração aleatória que satisfaz restrições estruturais básicas (dimensões da grade, contagem de suspeitos dentro de faixas válidas).
Fase 2: Construir o Pool de Pistas
Em seguida, o gerador enumera exaustivamente todas as pistas possíveis que são verdadeiras no tabuleiro da solução.
O Griductive possui mais de 26 tipos distintos de pistas — contagem, comparação, espacial, existencial, unicidade, conectividade e muito mais. Para cada tipo, o gerador testa toda parametrização válida contra o tabuleiro. Uma grade 4×4 pode produzir milhares de pistas candidatas. Apenas pistas que avaliam como verdadeiras na solução são mantidas.
Este é o material bruto com o qual o gerador trabalha: um pool massivo de declarações verdadeiras, a maioria das quais é redundante.
Fase 3: Selecionar um Conjunto Mínimo de Pistas (a Parte Difícil)
É aqui que o trabalho real acontece. O gerador precisa escolher um pequeno subconjunto de pistas do pool tal que:
- As pistas sejam suficientes — juntas, elas restringem o espaço de soluções a exatamente um tabuleiro válido.
- Nenhuma pista seja redundante — remover qualquer pista individual permitiria múltiplas soluções.
O gerador usa uma abordagem de satisfação de restrições gulosa:
- Começa sem nenhuma pista selecionada. O espaço de soluções está completamente aberto — muitos tabuleiros poderiam ser válidos.
- Pontua cada pista candidata por quanto ela reduz o espaço de soluções. Uma pista que elimina 80% das possibilidades restantes pontua mais do que uma que elimina 10%.
- Seleciona a pista com maior pontuação e a adiciona ao conjunto.
- Resolve novamente o modelo de restrições com o conjunto de pistas atualizado.
- Repete até que o solucionador confirme que apenas uma solução permanece.
- Poda: percorre o conjunto final e remove qualquer pista que não seja necessária para a unicidade. Isso mantém o quebra-cabeça limpo e evita dar ao jogador informação gratuita.
O resultado é um conjunto de pistas justo e enxuto — suficiente para resolver o quebra-cabeça completamente, sem pistas desperdiçadas.
Fase 4: Pontuar a Dificuldade
Com o conjunto de pistas definido, o gerador pontua a dificuldade do quebra-cabeça em uma escala de 0 a 100. Quatro fatores contribuem:
- Proporção de pistas simples (35%) — Quantas pistas são declarações diretas de contagem ou identidade. Mais pistas simples significa um quebra-cabeça mais fácil.
- Proporção de pistas complexas (30%) — Quantas pistas requerem raciocínio multi-etapa ou espacial. Estas demandam cadeias de dedução mais profundas.
- Escassez de informação (20%) — Quão poucas pistas são dadas em relação ao tamanho da grade. Menos pistas significa menos com o que trabalhar.
- Escala da grade (15%) — Grades maiores são inerentemente mais difíceis de acompanhar. Um quebra-cabeça 5×5 tem quase três vezes mais células que um 3×3.
Cada tipo de pista também tem uma classificação intrínseca de complexidade baseada no raciocínio que demanda. Uma pista como "Julia é uma suspeita" é das mais simples possíveis. Uma pista como "Julia é a única pessoa na linha 3 com exatamente 1 vizinho suspeito" requer cruzar referências de múltiplas células e recebe pontuação muito mais alta.
Fase 5: Gerar Dicas e Formatar a Saída
Por fim, o gerador constrói a sequência de dicas — uma ordem de resolução recomendada que guia jogadores travados pelo quebra-cabeça, um passo lógico de cada vez. As dicas são ordenadas por profundidade de dependência: células que podem ser deduzidas imediatamente vêm primeiro, e células que requerem longas cadeias de deduções prévias vêm por último.
O quebra-cabeça final é empacotado com todos os dados que o jogo precisa: metadados, conjunto de pistas, sequência de dicas e pontuação de dificuldade.
O Solucionador: Como a Unicidade É Provada
No coração do pipeline está o Google OR-Tools CP-SAT — um solucionador de programação por restrições que combina propagação de restrições, programação inteira e resolução SAT.
Como um quebra-cabeça se torna um problema matemático
Cada célula na grade é modelada como uma variável booleana: Suspeito (1) ou Inocente (0). Cada pista se torna uma ou mais restrições matemáticas sobre essas variáveis.
Por exemplo:
- "Existem exatamente 2 suspeitos na linha 3" se torna:
cell[3,0] + cell[3,1] + cell[3,2] + cell[3,3] = 2 - "Todos os suspeitos na coluna A estão conectados" se torna: uma restrição de conectividade garantindo que as células suspeitas na coluna A formem uma cadeia contígua sem lacunas.
- "A linha 1 tem mais suspeitos que a coluna B" se torna:
sum(row_1) > sum(col_B)
Como a unicidade é verificada
Após montar o conjunto de pistas, o gerador faz ao CP-SAT uma pergunta precisa: "Dadas essas restrições, existe mais de uma atribuição válida?"
O CP-SAT não apenas encontra uma solução — ele pode enumerar todas as soluções. Se o solucionador encontra exatamente uma, o quebra-cabeça é válido. Se encontra duas ou mais, o gerador retorna à Fase 3 e adiciona outra pista.
Esta é uma prova formal, não uma heurística. O CP-SAT explora exaustivamente todo o espaço de soluções. Se ele diz que há uma solução, existe exatamente uma — ponto final.
Por que não usar força bruta?
Uma grade 5×5 tem 25 células, cada uma com 2 valores possíveis. São 2²⁵ = 33 milhões de tabuleiros possíveis. Testar todos por força bruta é lento e não escala.
O CP-SAT é dramaticamente mais rápido por causa da propagação de restrições: quando uma pista diz "a linha 3 tem exatamente 2 suspeitos", o solucionador imediatamente reduz o espaço de busca para cada célula na linha 3 sem verificar cada combinação individualmente. Pistas complexas potencializam esse efeito. Na prática, o CP-SAT prova a unicidade de um quebra-cabeça 5×5 em milissegundos.
O Que Poderia Dar Errado (e Como Prevenimos)
"E se uma pista for ambígua?"
Cada tipo de pista tem uma definição matemática formal. "Vizinhos" sempre significa as até 8 células circundantes incluindo diagonais. "Conectados" sempre significa uma cadeia contígua de células adjacentes. "Entre" sempre significa células na mesma linha ou coluna, excluindo os extremos.
Essas definições são incorporadas diretamente no modelo de restrições — não há etapa de interpretação em linguagem natural onde a ambiguidade possa surgir. A referência de Detalhes Esclarecedores dentro do jogo mostra aos jogadores exatamente o que cada termo espacial significa.
"E se o solucionador tiver um bug?"
O solucionador CP-SAT é uma ferramenta bem testada e amplamente usada, mantida pela equipe de otimização do Google. Mas não dependemos apenas da confiança. Cada quebra-cabeça gerado é verificado independentemente:
- Um solucionador automatizado tenta resolver cada quebra-cabeça passo a passo, simulando um jogador humano. Se não consegue chegar a uma solução completa apenas por dedução lógica, o quebra-cabeça é rejeitado.
- Verificações de solidez das dicas confirmam que cada dica na sequência é logicamente válida — que a célula indicada é genuinamente deduzível a partir das pistas e células previamente reveladas, não a partir de informação oculta.
"E se a geração de pistas perder casos extremos?"
Cada tipo de pista tem uma função de avaliação formal que é testada contra configurações conhecidas de quebra-cabeças. A fase de geração do pool de pistas inclui apenas pistas que avaliam como verdadeiras na solução real — uma pista que é falsa na solução nunca pode aparecer no quebra-cabeça.
O Resultado
Quando você abre um quebra-cabeça do Griductive, aqui está o que já aconteceu:
- Uma solução aleatória foi gerada.
- Milhares de pistas candidatas foram avaliadas contra ela.
- Um subconjunto mínimo e não redundante foi selecionado.
- Um solucionador formal provou que exatamente uma solução satisfaz essas pistas.
- Um solucionador automatizado verificou independentemente que o quebra-cabeça é resolvível por dedução pura.
- Uma pontuação de dificuldade foi calculada e uma sequência de dicas foi gerada.
Todo quebra-cabeça, todo dia, em todos os quatro tamanhos de grade. Sem exceções.
A promessa se mantém: se você está travado, há uma pista que você ainda não usou completamente. Se você acha que duas respostas são possíveis, releia as pistas — a lógica vai resolver. E se quiser uma prova, o Grafo Lógico mostrará a cadeia exata de dedução, das pistas até a solução.
O Que Vem a Seguir: Pistas Que Contam Uma História
Atualmente, as pistas do Griductive são como declarações lógicas precisas — claras e inequívocas, mas reconhecidamente um pouco clínicas. "Existem exatamente 2 suspeitos na linha 3" cumpre a função, mas não faz exatamente você se sentir como um detetive investigando um caso.
Estamos trabalhando ativamente para mudar isso. O objetivo é diversificar como as pistas são expressas — incorporando sabor temático enquanto preservamos a mesma precisão lógica subjacente. Imagine pistas ligadas a eventos festivos, ou enquadradas como testemunhos de uma cena de crime específica. Em vez de uma fórmula estéril, você leria algo que parece uma verdadeira peça de evidência de uma investigação.
A restrição principal não mudou: cada pista deve permanecer consistente, inequívoca e formalmente verificável. O solucionador não se importa se uma pista soa como um livro de matemática ou um romance de detetive noir — ele se importa apenas com o conteúdo lógico. Essa separação é o que torna a expressão mais rica possível sem comprometer a correção.
Mesmas garantias. Mesmo rigor. Mas quebra-cabeças que parecem menos equações e mais casos dignos de serem desvendados.
Sem adivinhação. Sem sorte. Garantia matemática.