[HN Gopher] Battleships Logic Puzzle
       ___________________________________________________________________
        
       Battleships Logic Puzzle
        
       Author : QuadrupleA
       Score  : 138 points
       Date   : 2024-10-25 15:12 UTC (7 hours ago)
        
 (HTM) web link (lukerissacher.com)
 (TXT) w3m dump (lukerissacher.com)
        
       | pavel_lishin wrote:
       | Ooh, this is a fun variant of nonograms! If you like this puzzle,
       | I think you'd enjoy those too:
       | https://en.wikipedia.org/wiki/Nonogram
        
         | jldugger wrote:
         | Battleships is a pretty common puzzle on the World Puzzle
         | Championship tests. If this is new to you, you may enjoy
         | Nikoli's broader range of puzzle sets listed on wikipedia
         | https://en.wikipedia.org/wiki/Nikoli_(publisher)#Nikoli_puzz...
         | 
         | A number of them are implemented via SGT puzzles
         | https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
        
           | pavel_lishin wrote:
           | Huh, I've never heard of this particular puzzle before! Big
           | fan of Simon Tatham's puzzle app, though.
        
       | eapriv wrote:
       | There's a bug: if a puzzle has multiple solutions, only one of
       | them is considered "correct".
        
         | QuadrupleA wrote:
         | Author here - check that the revealed ships in your puzzle are
         | keeping their particular shape. E.g. a revealed-at-start "D"
         | shape ship-end can't be the middle of a ship, or an "O"
         | submarine, or face a different way that it's initially facing.
         | 99.9% of the time people report this, it's a confusion about
         | that aspect (if you can think of a way I can make it clearer
         | definitely let me know!).
        
           | hibikir wrote:
           | The simplest way would be to also pre-fill forced empty
           | spaces. It 'solves' part of the puzzle for the player, but
           | hopefully that wasn't a key part of the fun. You go as far as
           | to explain all of those bits at the bottom anyway.
           | 
           | This kind of thing is done to great effect in "Good Sudoku",
           | which gives players a lot of automated tools for the simplest
           | things, as to lead players to handling the more fun, more
           | complicated parts of the hard puzzles.
        
             | QuadrupleA wrote:
             | That would be a cool direction to explore.
        
               | rtkwe wrote:
               | Putting a blank space in front of or behind as
               | appropriate for the starting revealed square(s) would
               | make sure people don't keep having the problem.
        
             | QuadrupleA wrote:
             | Here's an experimental implementation, reveals the water
             | cells around any revealed boats:
             | 
             | https://lukerissacher.com/battleships?revealwater=1
             | 
             | Not sure I like it, kinda makes the starting puzzle
             | noisy/crowded.
        
           | acheron wrote:
           | Yeah took me a bit to catch how the starting spaces worked.
           | Not sure how to clarify that other than just writing it out
           | in the instructions below.
        
           | andrewla wrote:
           | I think the easiest way to make it clearer is to highlight it
           | in red as a mistake if done incorrectly, as you do with the
           | counts on the row ends. If you try to place a ship token
           | close to another one then you should also highlight it in
           | red.
        
       | tcmb wrote:
       | What this needs is a daily puzzle and an easy way to share it in
       | text format, a la Worlde or Domino Fit...
        
         | kibwen wrote:
         | You can find a shareable link to the puzzle by clicking the
         | gear icon.
        
       | justinpombrio wrote:
       | This is one of the puzzles at BrainBashers:
       | 
       | https://www.brainbashers.com/battleships.asp
        
       | akleemans wrote:
       | Bimaru is a fun puzzle. I remember putting an Android App in the
       | store containing the phrase "Battleships", only to receive a
       | copyright claim from Hasbro, and Google immediately took the App
       | down from the Store.
       | 
       | I rewrote it as a web version, should be still available:
       | https://www.kleemans.ch/static/bimaru-web/
        
       | gnramires wrote:
       | An undo button would be nice :) (for when I need to backtrack)
        
         | QuadrupleA wrote:
         | If you turn on hardmode there's a "Save Checkpoint" button. But
         | not easy mode at the moment (I wanted to keep the UI clean).
        
       | t00ny wrote:
       | Nice puzzle, reminds me of Zachtronics' Dungeons & Diagrams.
        
       | gs17 wrote:
       | Thank you for making it mobile-friendly. I almost made my own
       | Android version of this just because the usual site I played it
       | on wasn't usable and the best I could find in the Play store was
       | mostly there to sell you $1.99 packs of 50 puzzles as if there
       | was any actual effort put into generating them (seriously, they
       | acted like 1 free puzzle per week was generosity).
       | 
       | Although can we get a setting to switch left and right click's
       | default actions? I prefer puzzle games like this to use "click
       | where there is something, right click to mark where there isn't
       | something".
        
         | olliej wrote:
         | Depending on the puzzle there is "actual effort", a lot of
         | these puzzles are not generated.
         | 
         | If you're experienced with solving you can also generally
         | distinguish generated from constructed puzzles.
         | 
         | [Edit: Are you looking specifically for battleship puzzles? or
         | just variant sudoku?]
        
           | gs17 wrote:
           | It was the exact same puzzle that's in the OP. With the scale
           | of available puzzles they had for sale, I'm fairly confident
           | it was automated (they also weren't noticably different from
           | the generated puzzles I played before).
        
         | QuadrupleA wrote:
         | Sure thing - just added a quick button swap URL parameter:
         | 
         | https://lukerissacher.com/battleships?swapmouse=1
         | 
         | If it's a common request I should probably make it a saved
         | setting.
        
           | thaumasiotes wrote:
           | Having two mouse buttons available for two actions would make
           | sense, except that right-clicking on the puzzle brings up a
           | context menu. So regardless of the swapmouse setting, only
           | the left click is a real possibility.
        
       | uses wrote:
       | I've spent quite a few hours on this thing when I've needed
       | something non-linguistic for my brain to engage in. If it was
       | World of Warcraft, I'd probably be a level 30 rogue.
        
       | lupire wrote:
       | "Ships can't touch diagonally."
       | 
       | But it lets you do it and then tells you it's wrong at the end.
       | 
       | When the "4" has a strikethrough, the strike is almost impossible
       | to see.
        
         | dmonitor wrote:
         | "Ships can't touch diagonally." is a rule qualifying valid
         | answers, not what can be drawn on the diagram
        
       | zeugmata9 wrote:
       | Nice! In line with other apps like this (e.g. LinkedIn's queens),
       | I think the grid should be marked complete once you have all the
       | boats, without needing to mark all the water.
        
         | QuadrupleA wrote:
         | That might be good. One shortcut I did add, you can click the
         | numbers to auto-fill water once a row is complete.
        
       | QuadrupleA wrote:
       | Interesting tidbit, the Battleships puzzle is NP-complete
       | (http://www.mountainvistasoft.com/docs/BattleshipsAsDecidabil...)
       | - there's no known solver algorithm that can do it in polynomial
       | time, as the size of the puzzles / boards expand.
        
         | abetusk wrote:
         | I think NP-Completness is the norm rather than the exception.
         | Wikipedia has a list of NP-Complete problems [0].
         | 
         | [0] https://en.wikipedia.org/wiki/List_of_NP-
         | complete_problems#G...
        
           | thaumasiotes wrote:
           | > I think NP-Completeness is the norm rather than the
           | exception.
           | 
           | I don't think that's possible. Being NP-complete means a
           | problem is as hard as any NP problem, _and no harder_. But
           | there 's not an upper limit to how difficult a problem can
           | be.
           | 
           | Note that the problem of determining whether two different
           | regular expressions match the same set of strings is _much
           | harder_ than any NP-complete problem.
        
             | ianferrel wrote:
             | When you think about the class of things that humans
             | consider to be "fun logic puzzles", NP-Completeness seems
             | more common, since it encapsulates broadly the set of
             | puzzles that require a certain amount of brute-force to
             | find a solution to, and any reasonably entertaining human-
             | solvable puzzle is easy to verify that something is in fact
             | a solution.
        
       | dmurray wrote:
       | This doesn't work for me on Firefox Mobile on Android at 10x10 or
       | above. It's as if the touch targets get too small to select: I
       | can click on the numbers to turn them red, but I can't seem to
       | select any square.
       | 
       | Works well on smaller sizes and on Chrome on the same device.
        
         | QuadrupleA wrote:
         | Thanks, weird one - I just put in a fix, you can refresh the
         | page to get it. Some kind of CSS glitch where the cells (<i>
         | elements) got a height of 0 at narrow screen sizes, in Firefox
         | only, despite those and their parent <td>s having an explicit
         | height. Just added an absolute positioning hack to fix it.
        
       | cjfd wrote:
       | This implementation seems to work a little better:
       | https://www.puzzle-battleships.com/
        
         | joemi wrote:
         | What makes that one better in your opinion? I've tried both and
         | I think they're both OK.
        
       | waterhouse wrote:
       | I think "doesn't engage the language center of my brain" is more
       | accurate (and less pejorative) than "mindless". It certainly
       | engages spatial reasoning and some logic.
        
       | namuol wrote:
       | Love it!
       | 
       | If you like this sort of thing, be sure to check out Simon Tatham
       | (creator of PuTTY)'s Puzzles:
       | https://www.chiark.greenend.org.uk/~sgtatham/puzzles/
       | 
       | The Android and iPhone ports are also excellent and free from
       | ads/garbage.
        
         | tangus wrote:
         | Also, https://puzz.link/db/
         | 
         | You'll have to find the puzzles' rules by yourself tho.
        
       | ndarray wrote:
       | Given the rules, it would be a better experience if squares only
       | have two states: ship block or empty. There is no point to
       | letting the user draw water. The feature probably exists with the
       | intent of letting users mark squares that can't possibly be
       | ships, but why wouldn't the game do that step by itself based on
       | the blocks placed? That would make the game a lot less tedious.
        
         | joemi wrote:
         | It's indeed the way it is so that you can indicate a square
         | that must be water. What you propose sounds like a solver to
         | me, and I much prefer solving it myself.
        
       | RedNifre wrote:
       | It took me some time to unlearn the Nonogram rules of assuming
       | the numbers on the side indicate continuous ships. After that, it
       | was great fun!
        
       | o11c wrote:
       | I find the implementation of dragging really annoying compared to
       | similar engines. What I'm used to is:
       | 
       | * click and drag will only operate in a single line, either
       | horizontally or vertically
       | 
       | * click and drag will only perform the same operation
       | (considering both original type and new type). In particular, if
       | I've already filled in every other cell as water, dragging in
       | "ship" mode should only fill in the empty cells, not overwrite
       | the water.
       | 
       | * there should be "undo" support, both Ctrl-Z and U as well as a
       | button
       | 
       | Another feature usually _not_ found in similar engines, but
       | really useful in order to regain some of the experience from
       | solving them on paper:
       | 
       | * have a nearby text box for keeping notes; clear it when a new
       | puzzle is started
        
         | ajanuary wrote:
         | Having click and drag not be limited to a line is actually
         | useful for ringing around a completed ship. You can tap a
         | number clue on the outside to fill in the missing water, which
         | can help avoid needing to draw long straight lines.
         | 
         | But having it only perform the same action would make things
         | nicer.
        
       | tgeery wrote:
       | this is really nice. well done
        
       | jandrese wrote:
       | Weirdly I find the 15x15 puzzles to be easier in general than the
       | 6x6 ones. Maybe it is because the 15x15 ones aren't packed as
       | tightly so you don't have to use as much second order logic?
       | 
       | The only suggestion I would make is have a middle click that
       | marks a spot as a possibility.
        
       | NooneAtAll3 wrote:
       | having played a lot of this puzzle on https://www.puzzle-
       | battleships.com/ ... I'd love a couple QoL improvements, one from
       | there and one to be better than that one
       | 
       | - counters for columns/rows would be a nice idea to steal
       | 
       | - inverse control (so, lmb for ship) would help with not
       | interfering with default behaviour, for people switching to/from
       | different puzzles
       | 
       | Also ship helper really should come with each type on its own
       | line - your listing is harder to parse than on that website
        
       | adamredwoods wrote:
       | I think there's a bug. If we have two two-length ships, that are
       | next to each other in a connected in an "L" shape, it's not
       | possible to define it on the board.
        
         | oneeyedpigeon wrote:
         | You can't have that configuration: ships must not touch, even
         | at diagonals.
        
       | oneeyedpigeon wrote:
       | The way the shapes draw themselves -- e.g. the curves -- seem to
       | indicate if a shape is at the end, in the middle, etc. Is that
       | intentional?
        
       ___________________________________________________________________
       (page generated 2024-10-25 23:00 UTC)