Um quebra-cabeça Shingoki
Este é um quebra-cabeça Shingoki.
Regras do Shingoki:
- Desenhe linhas entre os pontos para formar um único loop sem cruzamentos ou ramificações.
- O loop deve passar por todos os números circulados na grade.
- Para círculos brancos, o laço deve passar em linha reta.
- Para círculos pretos, o loop deve fazer uma volta de 90 graus ao passar por eles.
- Os números nos círculos mostram a soma dos comprimentos das 2 linhas retas saindo desse círculo.
Um exemplo é mostrado abaixo para maior clareza.
Exemplo de quebra-cabeça:
Abaixo é mostrada a solução com alguma explicação:
Observe como o comprimento total é calculado para o círculo preto '6' e o círculo branco '5'.
O quebra-cabeça real a ser resolvido é mostrado abaixo:
Para sua conveniência, você pode usar este link , onde uma versão do quebra-cabeça já foi criada usando o editor penpa. Selecione "Mode" para ser 'Edge' para desenhar as linhas.
Boa sorte e divirta-se!
Respostas
A solução é:
Passo 1:
Comece estendendo linhas através de círculos brancos na borda e irradiando de círculos pretos na borda. Os círculos pretos nos cantos podem ser estendidos em ambas as direções.
![]()
O 9 no canto superior esquerdo pode ser totalmente resolvido, terminando com um único ponto do 3 branco abaixo dele e do 2 preto à sua direita (caso contrário, esses números menores seriam violados). O 2 e 3 também podem ser totalmente resolvidos, assim como o 3 branco na linha 7. Também podemos colocar pelo menos 3 segmentos de linha estendendo-se pelo 4 branco na linha 2.
![]()
Agora, o 5 preto no final da linha 3 só pode estender no máximo 3 segmentos para a esquerda (caso contrário, ele encontra a linha dos 3 brancos, violando sua restrição). Deve, portanto, estender-se pelo menos 2 segmentos para baixo, uma vez que para cima não é uma opção (a linha ficará presa em um canto). Mas isso significa que a linha serpenteando do 2 na linha 1 deve se estender para baixo mais 1 unidade, encontrando a linha do 5 e definindo seu comprimento para 1. Portanto, devemos ter 4 unidades de linha estendendo-se para baixo a partir do 5.
![]()
Isso significa que o 3 preto no final da linha 9 pode se estender verticalmente no máximo 1 unidade e, portanto, deve se estender 2 unidades para a esquerda.
Enquanto isso, a linha que atravessa o 7 branco na linha inferior também pode ser estendida em pelo menos 3 espaços para a esquerda (já que há espaço para apenas 4 em sua direita), e pelo menos 3 para a direita (uma vez que não pode atender a linha vinda do 3 inferior esquerdo). O 3 preto acima pode ser parcialmente resolvido.
![]()
Passo 2:
Observe que o 2 no final da linha 10 agora só pode ser resolvido de uma maneira. Isso então resolve o 7 branco, os dois 3 pretos no canto esquerdo inferior, e os outros números na seção do canto esquerdo inferior também.
![]()
Etapa 3:
Em seguida, observe que o 5 branco não pode ser satisfeito horizontalmente, ou a linha se estende através do 4 próximo e viola sua restrição. Portanto, ele deve ser cruzado verticalmente. Para evitar violar o 2 preto abaixo dele, só há uma maneira de satisfazê-lo. Isso força o 2 a se vincular ao 3 preto próximo e também finaliza o loop passando pelo 4 próximo, com deduções indiretas resultando na seção superior direita sendo totalmente resolvida.
![]()
Passo 4:
O 3 preto na linha 3 agora deve ter uma linha se estendendo por 2 espaços para a esquerda (ele só pode se estender 1 para cima ou para baixo). Isso então força a resolução do 4 branco na linha 2 e tem alguns efeitos colaterais para o preto 3 e seu vizinho preto 5.
![]()
Agora, o 4 branco na linha 5 só pode ser satisfeito horizontalmente.
![]()
Etapa 5:
Agora, um passo lógico interessante: considere o que aconteceria se o 5 preto fosse satisfeito ao estender a linha para baixo - terminamos em uma posição impossível que separa o topo e a base da grade em loops separados:
![]()
Assim, o 5 deve ser concluído usando a linha à esquerda.
![]()
Etapa 6:
Os 4 pontos soltos no centro devem se conectar uns aos outros para evitar becos sem saída. Assim, o resto da grade pode ser resolvido:
![]()
E agora há apenas uma maneira de colocar os últimos segmentos para manter um único loop!
A melhor maneira de resolver isso seria começar com os círculos nas bordas.
Se um círculo branco estiver em uma borda, você deve ter a linha que passa por ele paralela à borda.
Se um círculo preto estiver em uma aresta, você sabe que uma linha deve entrar nele perpendicular à aresta.
Seguindo isso e um pouco de dedução você chega a uma solução.