Simon Tatham's Puzzles app has a minesweeper version that both A) generates on first click so you are guaranteed to never hit a mine on the first click and B) every board is 100% solvable with no need to guess. I have no idea what method it uses. I believe that _every_ puzzle in it is 100% solvable with no need to guess. It's also add free and completely local. It's a great app for anyone who likes puzzles on their phone.
I looked at the code for this once. It's sort of a hack. It generates a random puzzle, tries to solve it with a deterministic backtracking(IIRC) solver that detects situations where it's stuck. If it is stuck, it shifts some mines around in the place where the solver got stuck, according to some heuristics, and keeps solving. It keeps doing this until the entire puzzle has been solved, verifying that the puzzle can be solved without any guesswork.
I will second the recommendation. As someone who's wasted too many hours on minesweeper, it radically changes the game. Because I know there's a logical solution, I'm able to find patterns that I never found in the original, because I'd often assume it was just one of those guesswork situations. It's similar to how chess puzzles are easier than an equivalent position during a game. Because you know there's a neat solution, you're more willing to put in the legwork of searching for it. Learned a lot about the game simply by playing Simon's version.
I tried some no-guess variants but somehow there's a kind of sterile feeling to it. For some reason it makes it more boring compared to vanilla variant. It of course excels when I'm getting frustrated at guesses and 50/50, but otherwise I play the normal minesweeper more.
Unfortunately it doesn't have proper controls and cell sizes (doesn't expand to the screen, so remain small), so it's easy to mistap on a wrong cell or mistap instead of mishold. Basically, controls aren't optimized for a touch screen
However, the minesweeper puzzle is the one that causes a big wart in the API, which part of me has wanted to refactor for years. (it's for the reason given in GP comment, the puzzle isn't generated until first click; it's the only one with this behavior and could be reworked to have the clicked area be a parameter to creation, but then it would have a slightly quirky main()-equivalent function.. IMO worth it for the cleaner API)
Simon's puzzles have overall been an inspiration, some good reading if you're into algorithms and applied graph theory and don't mind that it's in C.
Nice article, I wanted to point out though that your example board at the beginning has no such ambiguities or 50/50's. Here's a recreation of it so you can see for yourself, if you open it up from the bottom left as you did, the 1 2 1 leads to the board being solved rather quickly:
Thank you for your interest in my previous post. This time, I've written a blog post about the game and the process of creating it.
In the original Minesweeper, there are inevitable 50/50 moments where you have to rely on luck. In the game I created, 'Explainable Minesweeper,' I eliminated these guessing situations. However, I also prevented the maps from becoming too easy! How? By using logical deduction, you can solve puzzles that initially appear to be luck-based. The blog post explains the process in more detail.
In minesweeper online there's also a "no guessing" mode which, in my opinion, is much more interesting than the normal mode. It means that if you guess in a situation where you could have deduced the mines, you always get a mine. Conversely, if you really are in a guessing situation, you will never get a mine. I'm pretty sure the game calculates the unknown part of the map after each click anew.
I thought no guessing mode means the map is generated in such way that guessing is not needed to solve the whole board? (To those who didn't know the mode, it also forces you a starting point)
As an experiment, I tried clicking on a random position after clicking the starting point. And it is possible to that the position is safe. So I don't think the map in no guessing mode is dynamic.
Also in the help section: "In this mode, a starting position is provided, and you never need to guess to complete the board."
By considering the bomb location notations you have made on the board.
Are they all valid, and do they prove that the location you're clicking on is empty? Then you're not guessing.
Are they invalid, or do they not prove that the location is empty? Then you're making a guess that should fail.
Are they valid, comprehensive (there are no more bombs you could mark), and prove that all you have left are random choices? Then clicking is you indicating that you've found all there is to find for now, not a "guess".
If you’re interested in this you might like the game Bombe (https://store.steampowered.com/app/2262930/Bombe/) - a game about defining rules to let the computer solve various minesweeper (and more advanced variants) puzzles.
It’s a bit mind bending as you’re never actually solving the puzzles yourself, but creating sets of rules to solves whole classes of potential minesweeper patterns. It definitely solves that pleasurable puzzle solving itch!
Recently I have discovered Tametsi ( https://store.steampowered.com/app/709920 ), which is something like Minesweeper on steroids and some advanced levels can't be solved without advanced reasoning. If Minesweeper feels too easy/boring, this might be the right challenge for you.
On the left side, the 1 at the bottom means that the third from the bottom must be a mine (since the 2 can't point to the bottom two). The 1 touching that mine then excludes a bunch more, and that's sufficient to solve the rest.
Many many years ago I remember playing a free minesweeper that had, among other things, hexagonal maps as an option, but the big thing was that it guaranteed that you would never need to guess. You could always figure out the answer, and I believe there was a mode where if you clicked in a way where you couldn't have deduced the answer it would put a mine in there to punish you.
Anyone know what minesweeper software I'm thinking of?
Apart from the mine theme (and punishing you by putting in extra mines), that sounds like Hexcells. Very reminiscent of minesweeper, and you never have to guess.
what I'm thinking of is, I believe, much older. I remember playing it before 2010 at least based on the machine I was playing it on. And it was distinctly "windows" styled: it looked like windows minesweeper!
I will second the recommendation. As someone who's wasted too many hours on minesweeper, it radically changes the game. Because I know there's a logical solution, I'm able to find patterns that I never found in the original, because I'd often assume it was just one of those guesswork situations. It's similar to how chess puzzles are easier than an equivalent position during a game. Because you know there's a neat solution, you're more willing to put in the legwork of searching for it. Learned a lot about the game simply by playing Simon's version.
it's also available on windows and android - very good.
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mine...
However, the minesweeper puzzle is the one that causes a big wart in the API, which part of me has wanted to refactor for years. (it's for the reason given in GP comment, the puzzle isn't generated until first click; it's the only one with this behavior and could be reworked to have the clicked area be a parameter to creation, but then it would have a slightly quirky main()-equivalent function.. IMO worth it for the cleaner API)
Simon's puzzles have overall been an inspiration, some good reading if you're into algorithms and applied graph theory and don't mind that it's in C.
https://agustinfitipaldi.com/minesweeper?seed=eyJ3aWR0aCI6OS...
Thank you for your interest in my previous post. This time, I've written a blog post about the game and the process of creating it.
In the original Minesweeper, there are inevitable 50/50 moments where you have to rely on luck. In the game I created, 'Explainable Minesweeper,' I eliminated these guessing situations. However, I also prevented the maps from becoming too easy! How? By using logical deduction, you can solve puzzles that initially appear to be luck-based. The blog post explains the process in more detail.
As an experiment, I tried clicking on a random position after clicking the starting point. And it is possible to that the position is safe. So I don't think the map in no guessing mode is dynamic.
Also in the help section: "In this mode, a starting position is provided, and you never need to guess to complete the board."
Deleted Comment
Are they all valid, and do they prove that the location you're clicking on is empty? Then you're not guessing.
Are they invalid, or do they not prove that the location is empty? Then you're making a guess that should fail.
Are they valid, comprehensive (there are no more bombs you could mark), and prove that all you have left are random choices? Then clicking is you indicating that you've found all there is to find for now, not a "guess".
It’s a bit mind bending as you’re never actually solving the puzzles yourself, but creating sets of rules to solves whole classes of potential minesweeper patterns. It definitely solves that pleasurable puzzle solving itch!
Could you explain how? I haven't played a huge amount of Minesweeper, but I can't see how that can be solved without risk/luck.
Anyone know what minesweeper software I'm thinking of?