Puzzle lógico de Battleships
(lukerissacher.com)- Um quebra-cabeça lógico no estilo Battleship Solitaire, bom para resolver de forma leve enquanto se ouve um podcast ou música, em que você deduz e preenche os navios escondidos e as células de água no tabuleiro
- Os números de cada linha e coluna indicam a quantidade de células de navio naquela linha, e a lista de navios no topo do puzzle informa os tamanhos dos navios que precisam ser encontrados
- Os navios não podem encostar uns nos outros, e o contato diagonal também é proibido, permitindo deduções como marcar como água as células ao redor de um navio confirmado
- Quando ficar travado, é possível usar regras como posições restantes, o resto é água, água nos cantos, cercar navios concluídos e encontrar a única posição possível para o maior navio
- Também pode ser jogado em dispositivos móveis e tem um recurso para preencher água automaticamente ao clicar nos números, reduzindo o trabalho de entradas repetitivas
Como funciona o puzzle
- Battleship Solitaire é uma versão do Battleship Logic Puzzle) e também é chamado de Battleship Solitaire, Bimaru ou Yubotu
- O tabuleiro esconde navios de vários tamanhos, e no topo do puzzle é exibida uma lista dos tamanhos dos navios que precisam ser encontrados
- O usuário clica em cada célula para indicar onde há navio e onde há água
- Os números das linhas e colunas indicam a quantidade de células de navio contidas naquela linha ou coluna
- Quando todas as células são preenchidas corretamente, o puzzle é resolvido
- Os navios não podem tocar uns nos outros, nem mesmo na diagonal
Regras de resolução e recursos de conveniência
- Regra das posições restantes: se uma linha precisa de 3 células de navio e restam exatamente 3 células que não são água, então essas 3 células são todas navios
- Regra de que o resto é água: se uma linha já atingiu o número necessário de células de navio, todas as demais células dessa linha são água
- Linhas que precisam de 0 células de navio também podem ser tratadas do mesmo modo, marcando tudo como água
- Ao clicar no número, é possível preencher a água automaticamente
- Regra da água nos cantos: como os navios não podem tocar na diagonal, as células nos cantos diagonais de uma célula de navio podem sempre ser marcadas como água
- Regra de cercar um navio concluído: quando se conhece a posição completa de um navio, é possível cercar totalmente esse navio com água
- Regra da única posição possível: às vezes resta apenas uma posição no tabuleiro onde o maior navio pode caber
- Também pode ser jogado em dispositivos móveis
1 comentários
Comentários no Hacker News
Se você gosta desse tipo de quebra-cabeça, vale muito a pena conferir também o Puzzles, de Simon Tatham, criador do PuTTY: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
Os ports para Android e iPhone também são excelentes, gratuitos e sem anúncios nem firulas.
Mas é preciso procurar as regras de cada quebra-cabeça por conta própria.
Um ponto interessante: o quebra-cabeça Battleships é NP-completo: http://www.mountainvistasoft.com/docs/BattleshipsAsDecidabil...
Não há um algoritmo de solução conhecido que resolva em tempo polinomial quando o quebra-cabeça ou o tamanho do tabuleiro cresce.
Gostei de terem feito algo amigável para mobile. O site que eu costumava usar era praticamente inutilizável, e a maioria do que encontrei na Play Store eram apps querendo vender pacotes de 50 quebra-cabeças por US$ 1,99, sem que parecesse haver muito esforço na geração deles; eu quase fiz minha própria versão para Android.
Alguns até tratavam 1 quebra-cabeça grátis por semana como se fosse uma grande generosidade. Só gostaria que houvesse uma configuração para trocar o comportamento padrão do clique esquerdo/direito. Nesse tipo de quebra-cabeça, prefiro o esquema de “clicar onde há algo e marcar onde não há com o botão direito”.
Se houver muitos pedidos, talvez seja melhor transformar isso em uma configuração salva.
Com bastante experiência resolvendo, em geral dá para distinguir quebra-cabeças gerados daqueles feitos por pessoas. Fico curioso se você está procurando quebra-cabeças Battleship especificamente ou variantes de Sudoku em geral.
Isto parece uma variante de Nonogram divertida. Se você gostou deste quebra-cabeça, provavelmente também vai gostar de Nonogram: https://en.wikipedia.org/wiki/Nonogram
Alguns deles estão implementados no SGT puzzles: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
Curiosamente, no geral os quebra-cabeças 15x15 parecem mais fáceis que os 6x6. Talvez seja porque os 15x15 são menos densos e exigem menos lógica de segunda ordem.
Uma sugestão: seria bom poder marcar uma célula como posição possível com o clique do meio.
Levei um tempo para esquecer as regras de Nonogram, que me faziam presumir que os números ao lado indicavam navios contíguos. Depois disso, ficou muito divertido.
Um jogo de quebra-cabeça parecido é o Dungeons & Diagrams, do Last Call BBS, da Zachtronics. Em uma grade 8x8, você decide quais células são paredes para criar uma masmorra e precisa satisfazer restrições como “becos sem saída devem necessariamente ter monstros, e vice-versa”.
Esse jogo também informa os totais que cada linha e coluna precisam cumprir. Há também um clone gratuito: https://netchips.dev/
Bimaru é um quebra-cabeça divertido. Lembro que, no passado, publiquei na loja um app para Android com a palavra Battleships no texto, e a Hasbro fez uma reivindicação de direitos autorais; o Google removeu imediatamente o app da Store.
Por isso refiz como versão web, e ela ainda deve estar disponível aqui: https://www.kleemans.ch/static/bimaru-web/
No Firefox Mobile para Android, não funciona em 10x10 ou maior. Os alvos de toque parecem ficar pequenos demais para serem selecionados.
Dá para tocar nos números e deixá-los vermelhos, mas nenhuma célula parece selecionável. Em tamanhos menores, ou no Chrome no mesmo aparelho, funciona bem.
Corrigi adicionando uma gambiarra com posicionamento absoluto.
Em comparação com engines parecidas, a implementação do arrastar incomoda bastante. O comportamento ao qual estou acostumado é que clicar e arrastar só funcione em uma única linha horizontal ou vertical, e execute a mesma ação levando em conta o estado original e o novo estado.
Em especial, se eu já preenchi água em células alternadas e arrasto no modo “navio”, ele deveria preencher apenas as células vazias, não sobrescrever as marcações de água. Também deveria haver desfazer via Ctrl-Z, U e botão. Para recuperar um pouco a sensação de resolver no papel, uma caixa de texto para anotações próxima, apagada ao iniciar um novo quebra-cabeça, também seria útil.
Ainda assim, acho que ficaria melhor se sempre executasse a mesma ação.