Placement enumeration
For each unsunk ship the solver lists every (origin, orientation) that fits the 10×10 board, respects shots you've marked as miss / hit / sunk, and doesn't overlap previously-placed ships of the same configuration.
Summing over all valid joint placements gives a per-cell probability that a ship occupies it — the heatmap shown in the UI. The recommended shot is the argmax, with hits weighted higher during the target phase to prefer cells adjacent to known hits.
Why this beats parity-only heuristics
Pure parity-based hunting (e.g. checkerboard sampling at stride equal to the smallest remaining ship) ignores information from past misses. The density approach uses every observation and dominates parity in expected shots-to-sink across the standard rule sets.