1) https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ (scroll down to "Mines")
So the version described in the article, where it generates purely random setups and you can ask for help if it's truly impossible to make progress without guessing, will actually give more interesting puzzles, sometimes.
A more ideal version would even take into account probabilities, so that to get help you'd have to point it at one of the squares with the lowest probability of having a mine in it. (Or, as another commenter points out, a square with the highest probability of useful progress.)
The Android version [0] of Simon Tathams games is most likely the best puzzle compilation you can get for your phone!
It is small, free, fully offline and does not contain any ads. I literally spend hundreds of hours playing this game over the last few years.
[0] https://play.google.com/store/apps/details?id=name.boyle.chr...
He is also the person behind PuTTY.
I thought I recognised that name from somewhere. I once had to hack the PuTTY sources for an internal project and it was quite an enjoyable experience due to how cleanly written the code was. I was always a fan of PuTTY but I'd gained a new appreciation for it that day.
Many years ago I used to be quite addicted. The unconscious pattern matching went far enough to detect unknowable situations and do even the switch back and forth between guessing and solving without spending a conscious thought. The goal was not to solve as many boards as possible with a timeframe, but to get the best time so there was a kind of triage going on between trying to solve possible solvable large scale situations and failing fast. The strategic level was finding the right cutoff.
Someone says "minesweeper", I post my implementation - “bugsweeper”. It's an established ritual.
Here go: http://www.ronilan.com/bugsweeper/
Few notes:
1. This is dated January 2014. It is a job interview homework.
2. The HN community has detected a bug and indicated that it should be fixed. That was done March 2017.
3. There are currently no known bugs.
4. The goal of the game is to find the unknowns.
5. No puns intended.
6. Code: http://www.ronilan.com/bugsweeper/js/bugsweeper.js
7. Have a great weekend everyone!
Why I posted it?
I posted it, as a comment, mainly because it is fun for a couple of hundred people to play every couple of months. Not everyone seen it before and I think it came out a good game.
This has a point: https://xkcd.com/1053/
Why I think it is acceptable?
I personally think it is acceptable because it always raises some interesting discussion about something.
That’s what comments are for.
So why a software rewrite?
For myself.
But, if I’m writing something for myself, I might as well write something new and interesting, and since I’m no longer interested in working at Thumbtack, and they weren’t interested in hiring me anyway, the uinverse is now balanced.
And that was a rumble about rewrites :)
Kudos to the author.
My inspiration for the format is Red Blob Games (https://www.redblobgames.com/), truly a marvel of interactive writing. (https://www.redblobgames.com/grids/hexagons/ is my all-time favorite)
My only other complaint is that it sometimes tries far too hard to derive facts in cases where a higher-level consideration makes it obvious there are none to be found. Try starting by clicking on 6 wildly disconnected locations, and getting a number on all of them. Requesting help at that point is very, very slow.
Regardless, this is a lot of fun, and actually requires some new reasoning. Most minesweeper variants just use the same set of 10 rules I memorized 20 years ago. It's nice to stretch instead.
My version is called Swine Peeper, and you're trying to find pigs in a field. It's now free if you're interested: https://play.google.com/store/apps/details?id=com.ionicframe...
I guarantee this is both the most literary, and most pun-filled version of minesweeper available.
To anyone who has just barely gotten their feet wet in programming, building a minesweeper clone is a great next step after something like a text-based blackjack game.
Do yourself a favor, don't look up any of the standard solutions for building it. Try weird things, figure it out. I made several completely different systems for propagating clicks through empty squares before I came up with a simple, reliable, and performant solution. If anyone had given me a hint I would have learned half as much.
I'm guessing that's not yours, as it doesn't seem to have anything to do with pigs. Since it lacked actual pigs I carried on with my idea and just modified the title.
If I'd seen yours I might have come up with some other silly theme.
The final version of the game with the automation turned off actually plays identically bar that option.
On this level the game becomes 95% dexterity and 4% the "metagame" OP was talking about, which is triaging probable unknowables between guessing early and hoping for more information. The tiny rest is occasionally waking up from pattern matching autopilot mode to apply some logic to very rare patterns.
I don't think this speaks to your central point, however :)
So one thing I do is work everything out "as if" I placed a flag or or cleared a spot. I want to be able to put a ghost flag down so that I don't have to remember what the current state of the particular path I'm trying to rule out is.
Otherwise I forget about it the second I look away or it gets complicated.
I can't play sudoku without the ability to put in shadow options, or better yet, have the game do it for me. One can argue that the keeping track in your head is a worthwhile aspect of the game, I think it's not.
I only know a couple strategies for Minesweeper, so it was pretty cool to see this writeup make distinctions between local and global approaches, not to mention calling out explicit situations where guessing is necessary.
Sounds a bit like the scientific method =) Make hypotheses and try to falsify them
I never told anyone about it because I didn't think it was a big deal, but a couple of years ago I decided to look up the current world record and it's 23 seconds.
Unfortunately I can't prove it, but anytime Minesweeper comes up in discussion I'm obligated to annoyingly mention it.
Is that really true? You can induce that the squares in the corners are free just by looking at their surroundings.
For instance, take the 2x2 section in the top-left of the board. Although the top-right and bottom-left squares of this section are mined, it could also be the top two, or alternatively the left two.
Therefore a more complex algorithm is required to solve this board.
Once you had cleared a bit of the screen, if you then got stuck, you could wait for the next storm then some of the mines would likely have moved to a solvable position.
Author: http://www.crashonline.org.uk/16/andrew.htm
Walkthrough: https://www.youtube.com/watch?v=VqFWdqaoQPw
Not everyone finds the same things fun; situation 1 is actually quite fun to me! See the rise of interactive comic "video games" which are closer to movies with a small number of branching points, or particle simulators (eg Uzu on iOS).
The logical steps needed to solve it requires crazy amounts of concentration.
Make an assumption about where there is a mine, follow its implications until you find an inconsistency and then you know there is NOT a mine there. (however if everything checks out and then you know there COULD be mine there)