Initial checkin of my Minesweeper clone, which uses a solver during

grid generation to arrange a mine layout that never requires guessing.

[originally from svn r5859]
This commit is contained in:
Simon Tatham
2005-05-30 10:08:27 +00:00
parent 0f423f0b3a
commit 6b9e690c89
6 changed files with 2742 additions and 13 deletions

View File

@ -829,6 +829,78 @@ for you. Be prepared to wait, especially if you have also configured
a large puzzle size.
\C{mines} \i{Mines}
\cfg{winhelp-topic}{games.mines}
You have a grid of covered squares, some of which contain mines, but
you don't know which. Your job is to uncover every square which does
\e{not} contain a mine. If you uncover a square containing a mine,
you lose. If you uncover a square which does not contain a mine, you
are told how many mines are contained within the eight surrounding
squares.
This game needs no introduction; popularised by Windows, it is
perhaps the single best known desktop puzzle game in existence.
This version of it has an unusual property. By default, it will
generate its mine positions in such a way as to ensure that you
never need to \e{guess} where a mine is: you will always be able to
deduce it somehow. So you will never, as can happen in other
versions, get to the last four squares and discover that there are
two mines left but you have no way of knowing for sure where they
are.
\H{mines-controls} \I{controls, for Mines}Mines controls
This game is played with the mouse.
If you left-click in a covered square, it will be uncovered.
If you right-click in a covered square, it will place a flag which
indicates that the square is believed to be a mine. Left-clicking in
a marked square will not uncover it, for safety. You can right-click
again to remove a mark placed in error.
If you left-click in an \e{uncovered} square, it will \q{clear
around} the square. This means: if the square has exactly as many
flags surrounding it as it should have mines, then all the covered
squares next to it which are \e{not} flagged will be uncovered. So
once you think you know the location of all the mines around a
square, you can use this function as a shortcut to avoid having to
click on each of the remaining squares one by one.
If you uncover a square which has \e{no} mines in the surrounding
eight squares, then it is obviously safe to uncover those squares in
turn, and so on if any of them also has no surrounding mines. This
will be done for you automatically; so sometimes when you uncover a
square, a whole new area will open up to be explored.
(All the actions described in \k{common-actions} are also available.
Even Undo is available, although you might consider it cheating to
use it!)
\H{mines-parameters} \I{parameters, for Mines}Mines parameters
The options available from the \q{Custom...} option on the \q{Type}
menu are:
\dt \e{Width}, \e{Height}
\dd Size of grid in squares.
\dt \e{Mines}
\dd Number of mines in the grid.
\dt \e{Ensure solubility}
\dd When this option is enabled (as it is by default), Mines will
ensure that the entire grid can be fully deduced starting from the
initial open space. If you prefer the riskier grids generated by
other implementations, you can switch off this option.
\A{licence} \I{MIT licence}\ii{Licence}
This software is \i{copyright} 2004-2005 Simon Tatham.