1 pontos por GN⁺ 2024-10-27 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-10-27
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.

    • Também há este aqui: https://puzz.link/db/
      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”.

    • Já dá para fazer. Adicionei rapidamente um parâmetro de URL para trocar os botões: https://lukerissacher.com/battleships?swapmouse=1
      Se houver muitos pedidos, talvez seja melhor transformar isso em uma configuração salva.
    • Dependendo do quebra-cabeça, há casos em que realmente existe trabalho de criação, e muitos desses quebra-cabeças não são gerados automaticamente.
      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

  • 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.

    • Era um bug estranho, mas acabei de corrigir; basta atualizar. Era um problema de CSS em que, só no Firefox em telas estreitas, a altura dos elementos das células ficava 0, mesmo com altura explícita tanto no elemento quanto no pai.
      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.

    • O fato de clicar e arrastar não ficar limitado a uma linha é realmente útil para marcar em volta de um navio completo. Dá para tocar nas pistas numéricas externas para preencher as marcações de água que faltam, o que reduz a necessidade de desenhar linhas retas longas.
      Ainda assim, acho que ficaria melhor se sempre executasse a mesma ação.
    • Desfazer seria muito bom. No mobile, especialmente em grades grandes, é fácil tocar sem querer na célula errada e difícil descobrir qual era o estado anterior.
    • Clicar e arrastar sem sobrescrever células não vazias é um bom recurso da série Picross da Nintendo.