Ah, that old chestnut:
How do we gauge the difficulty of a board?
Well this thread got me thinking about it once agian, and I must say that I feel more qualified to answer this question now, than the previous times I dabbled with it. Just so that you guys understand the lingo in which I think (so I don't look like I'm babbling
), I'm just gonna state the way in which I view the problem.
The idea of "difficulty" is slightly missunderstood. A board with a specific 3BV for instance isn't really any more difficult to solve than a board with some other 3BV. The word "difficulty", as we use it, actually refers to how difficult it is to get a fast time on a board. And this is what leads me to restate the problem for myself as follows:
How much work (i.e. how many clicks)
is there to be done on a specific board?The basic idea being that one can complete less work in a faster time. Now for non-flaggers this is easy to answer. The work to be done is simply the 3BV of the board. But for flaggers it is a different story. If we where to look at any board from a flaggers perspective we would realise that the amount of work you do in solving a board depends on the order in which you do all the little jobs around the board. Thus, the question of how much work there is to be done on a board then becomes someting wholely different. We are now forced to ask the ultimate question in minesweeper: "What is the most efficient way of solving a minesweeper board?"
*end of David Attenborough style self-naration* xD
Well
this problem I have thought of quite a bit in the past, and I've figured out a few things. First off, there is no one technique which will be most efficient on every board. The point is, however to find that technique, that style, that way of approaching a game that will yeild good results most of the time. This is basically what a minesweeper player is: A machine for churning out styles of play which produce good results most of the time.
One of the most promising ideas I've encountered for finding this "ideal style" is basically to evolve it. The idea is simple:
You give a computer a large set of rules, ranging from very general (like: Always move into the unopened regions of the field)
to very speicific (like: Don't left click on a 1 which is 3 squares from the side and shares it's mine with a two on the second row from the side)
and let it play minesweeper according to these rules and let it systematically evolve a style which is generally effective.
This sort of approach to complex problems is a proven one. The only trouble we have at the moment is figuring out how those rules look. (This is why I've been trying to do some combinatorix on minesweeper to try and figure out what rules to give such a program)
"But this isn't telling us how much work is on a board!!!!"True, but this will tell us what approach to let our algorithm take to get to that optimal solution, and that is my point for this post.
Basically we need to equip our algorithm with a set of rulesets which we know are close to reality under certain (much more easily computed) conditions. One such factor one could use to discern between two possible approaches is 3BV, because it is very likely that the styles producing best results on two different 3BV ranges, will be notably different.
Well, that's my ten cents...