Percursos
/
F#
F#
/
Exercícios
/
Ajudante de Killer Sudoku
Ajudante de Killer Sudoku

Ajudante de Killer Sudoku

Médio

Instruções

Um amigo teu está a aprender a resolver Killer Sudokus (regras abaixo), mas tem dificuldade em perceber que algarismos podem entrar numa gaiola. Pede-te ajuda para escreveres um pequeno programa que liste todas as combinações válidas para uma determinada gaiola e quaisquer restrições que afetem essa gaiola.

Para facilitar a leitura do resultado do teu programa, as combinações que devolve têm de estar ordenadas.

Regras do Killer Sudoku

  • Aplicam-se as regras normais do Sudoku.
  • Os algarismos de uma gaiola, habitualmente marcada por uma linha tracejada, somam o número pequeno indicado no canto da gaiola.
  • Cada algarismo só pode aparecer uma vez em cada gaiola.

Para uma explicação mais detalhada, consulta este guia.

Exemplo 1: Gaiola com apenas 1 combinação possível

Numa gaiola de 3 algarismos com soma 7, só existe uma combinação válida: 124.

  • 1 + 2 + 4 = 7
  • Qualquer outra combinação que dê 7, por exemplo 232, violaria a regra de não repetir algarismos dentro de uma gaiola.

Grelha de Sudoku, com três gaiolas killer marcadas como agrupadas.
A primeira gaiola killer está no bloco 3×3 do canto superior esquerdo da grelha.
A coluna do meio desse bloco forma a gaiola, com as seguintes células de cima para baixo: a primeira célula contém um 1 e uma marca a lápis de 7, que indica uma soma de gaiola de 7, a segunda célula contém um 2, a terceira célula contém um 5.
Os números estão realçados a vermelho para indicar um erro.
A segunda gaiola killer está no bloco 3×3 central da grelha.
A coluna do meio desse bloco forma a gaiola, com as seguintes células de cima para baixo: a primeira célula contém um 1 e uma marca a lápis de 7, que indica uma soma de gaiola de 7, a segunda célula contém um 2, a terceira célula contém um 4.
Nenhum dos números desta gaiola está realçado e, por isso, não contêm erros.
A terceira gaiola killer segue o canto exterior do bloco 3×3 central da grelha.
É composta pelas três células seguintes: a célula superior esquerda da gaiola contém um 2, realçado a vermelho, e uma soma de gaiola de 7.
A célula superior direita da gaiola contém um 3.
A célula inferior direita da gaiola contém um 2, realçado a vermelho. Todas as outras células estão vazias.

Exemplo 2: Gaiola com várias combinações

Numa gaiola de 2 algarismos com soma 10, existem 4 combinações possíveis:

  • 19
  • 28
  • 37
  • 46

Grelha de Sudoku, com todos os quadrados vazios exceto a coluna do meio, a coluna 5, que tem 8 linhas preenchidas.
Cada duas linhas contíguas formam uma gaiola killer e estão marcadas como agrupadas.
De cima para baixo: o primeiro grupo é uma célula com o valor 1 e uma marca a lápis que indica uma soma de gaiola de 10, e uma célula com o valor 9.
O segundo grupo é uma célula com o valor 2 e uma marca a lápis de 10, e uma célula com o valor 8.
O terceiro grupo é uma célula com o valor 3 e uma marca a lápis de 10, e uma célula com o valor 7.
O quarto grupo é uma célula com o valor 4 e uma marca a lápis de 10, e uma célula com o valor 6.
A última célula da coluna está vazia.

Exemplo 3: Gaiola com várias combinações que está restringida

Numa gaiola de 2 algarismos com soma 10, em que a coluna já contém um 1 e um 4, existem 2 combinações possíveis:

  • 28
  • 37

19 e 46 não são possíveis devido ao 1 e ao 4 na coluna, de acordo com as regras normais do Sudoku.

Grelha de Sudoku, com todos os quadrados vazios exceto a coluna do meio, a coluna 5, que tem 8 linhas preenchidas.
A primeira linha contém um 4, a segunda está vazia e a terceira contém um 1.
O 1 está realçado a vermelho para indicar um erro.
As últimas 6 linhas da coluna formam gaiolas killer de duas células cada.
De cima para baixo: o primeiro grupo é uma célula com o valor 2 e uma marca a lápis que indica uma soma de gaiola de 10, e uma célula com o valor 8.
O segundo grupo é uma célula com o valor 3 e uma marca a lápis de 10, e uma célula com o valor 7.
O terceiro grupo é uma célula com o valor 1, realçado a vermelho, e uma marca a lápis de 10, e uma célula com o valor 9.

Experimenta por ti

Se quiseres experimentar um Killer Sudoku mais acessível, podes tentar este puzzle do Clover, apresentado por Mark Goodliffe no Cracking The Cryptic, a 21 de junho de 2021.

Também podes encontrar Killer Sudokus com vários níveis de dificuldade em inúmeros jornais, bem como em aplicações de Sudoku, livros e sites.

Créditos

As capturas de ecrã acima foram geradas com o F-Puzzles.com, uma ferramenta de criação de puzzles de Eric Fox.

Editar via GitHub A ligação abre numa nova janela ou separador
F# Exercism

Estás pronto para começar Ajudante de Killer Sudoku?

Inscreve-te no Exercism para aprenderes e dominares F# com 18 conceitos148 exercícios, e mentoria humana real, tudo grátis.