Talk:Minesweeper game

Revision as of 15:50, 11 July 2010 by MikeMol (talk | contribs) (→‎Differences in behavior from classic game: Loop/recursion, and optional features.)

Too long?

It took several hours to write the task description and to code this tasks initial Python solution. I will probably set the sample output to scroll when the page gets too long, but other language examples may well have to be sub-pages.

I freely admit that the task was chosen with an eye to attracting those new to programming :-)
--Paddy3118 10:58, 10 July 2010 (UTC)

Differences in behavior from classic game

The clearing criteria seems wrong or ill-defined. In the classic game if you clear a square that has one or more adjacent mines no further clearing happens. If the square has zero adjacent mines a clearing is opened to an edge of non-zero numbers. (The small size of the board and mine probability makes it hard to properly demonstrate the clearing criteria) --Dgamey 09:55, 11 July 2010 (UTC)

I must say that I just made up what I thought was the clearing algorithm on games I had played some time ago, and I was probably unconsciously trying to minimise complexity in an already large task. Could we go with this simpler clearing strategy, at risk of impairing the playability of the game? --Paddy3118 11:01, 11 July 2010 (UTC)
The classic clearing criterion is to only auto-reveal cells if they have no mines in the neighbors at all. It's pretty trivial to do this given that you need to calculate that figure anyway for display on the cell, and you can just call the clearing function (safely) recursively. (It gets slightly tricker with a very large grid since it's possible to get into problems with recursion depth, if that's something your language implementation imposes a cap on, but that's a refinement really.) –Donal Fellows 11:37, 11 July 2010 (UTC)
Why must it be recursive clearing? Not all languages support recursion. Even for the large grid in a classic game 16 x 30 it wouldn't too bad. --Dgamey 13:27, 11 July 2010 (UTC)
Doesn't have to be, but it is easy for (almost) everyone to implement. –Donal Fellows 14:10, 11 July 2010 (UTC)
There's also the loop/recursion transform. --Michael Mol 15:50, 11 July 2010 (UTC)
I'd suggest making the "resursive clearing" feature optional. That enables the bulk of the task, and lets anyone sufficiently clever come along and handle the part that may be more difficult for some languages. --Michael Mol 15:50, 11 July 2010 (UTC)
Return to "Minesweeper game" page.