In my Portable Puzzle Collection, it was recently (a few weeks ago) the 20th birthday of the game "Mines": a reimplementation of Minesweeper which ensures every grid can be solved by reasoning rather than guesswork. The first click in a completely blank grid is guaranteed to be safe, and to open an area of more than one clue, and after that, you can always identify a safe square to open next by thinking about the currently visible clues.

This makes it possible to generate grids with a much higher density of mines than standard randomised Minesweeper, such as the example shown here with 99 mines in only a 16×16 grid. I actually didn't predict that this would be possible when I wrote the grid generator originally: I only expected to be able to play on settings like the standard Windows ones, without those nasty last-minute frustrations. The ability to turn up the density by more than a factor of 2 was a very pleasant surprise – my algorithm was far more effective than I had anticipated!

The odd thing about Mines is: in the past 20 years, this one game has received far more bug reports about insoluble game instances than any other puzzle in my collection. Very likely more than all the other games *put together*.

But not one of those reports has turned out to be a real bug in the grid generation. In cases where they sent a save file or a game ID, I generally played through the game myself to make sure; if they only sent a screenshot, I've always at least pointed out something I could see in the picture. *Everybody* who sent this kind of report turned out to have missed something.

Happy 20th birthday, Mines!

I've always wondered why Mines has attracted *so many* reports of insolubility. My other puzzle games get the occasional one (and, across the whole collection one or two have been right). But Mines gets a large majority.

Perhaps it's just that Mines is far more popular then the rest of my games, and the larger number of bug reports is in proportion to the larger number of players? I don't have statistics to confirm if that's true, though.

And I have another theory:

Players used to playing Minesweeper as a high-speed game, on a timer, simply aren't *used* to having to stop and reason carefully. Because if you're trying to beat your speed record, there's no point: if you stop and ponder over a tricky deduction for 20 seconds, you might or might not finish the game successfully, but you *certainly* won't get a high score. So you might as well treat anything above-averagely difficult *as if* it was impossible.

(OK, there was _one_ report of a Mines solubility problem which I never managed to resolve, because the reporter never got back to me. But on the evidence I had, I suspect they might have clicked to open the initial area, then pressed Undo, and then clicked somewhere different once the mine layout was decided. _That_ isn't guaranteed to give you a soluble puzzle: lots of puzzles can be solved from the intended starting point but not from other starting points, even the ones that open an area. If this is the correct explanation then I don't count it as a bug in the grid _generation_, although you could reasonably call it a UI flaw.)

Speaking of speed play, the most interesting email conversation I've ever had about Mines was with a serious competitive Minesweeper player – someone who placed highly in world tournaments.

First, I hadn't known there _was_ a serious tournament Minesweeper scene, so that was interesting by itself. But also, this player had been using my Mines on the high-density settings as an element of their training programme, to get lots of practice at the situations that come up with high-numbered clues, which you don't get many chances to practise if you only play random grids.

But they didn't like my Mines's user interface, which makes sense, because it's intentionally simplified for portability. And if your reflexes are finely tuned to drive the standard UI at incredibly high speed, any tiny difference will surely throw you off your stride. So they were looking at extracting the grid generation code from my implementation, and sticking it into a modified version of one of the 'pro clones' – the versions of the game used in tournament play. That way, they'd get my high-density grids with the UI they needed.

Alas, I don't know if they ever completed that project, or if it ended up improving their play!

@simontatham Your game pack is the first place I ever learned about a whole bunch of different pencil puzzles way back in the day.. I played so much Loopy
@iagox86 @simontatham I’ve had to redirect Simon’s domain to localhost on my laptop because of loopy 🫠

@simontatham
There are two solutions.

Either prevent undoing the first click.

Or reset the game using the same seed.

The latter may confuse people using undo to cheat, as the same seed will generate a different grid with a different first click.

@leeloo @simontatham confusing people who cheat seems acceptable