Minestein is a version of the famous Minesweeper game. But, unlike the original Minesweeper, in its default mode Minestein will always produce puzzles that can be solved using logic - no guessing is required. For traditionalists, Minestein also has an "Original" mode which is equivalent to the standard program. If users get stuck or are still learning, Minestein has a button providing a two stage hint mechanism, plus "show answer" and "show solution" buttons. It can produce puzzles with a minimum difficulty rating. The Python source code is included in the download.
Figure 1 shows a typical view of Minestein soon after a puzzle has been started. The figure legend gives an overview of the game play. Cell positions are defined by column,row coordinates with 1,1 at the bottom left.
For those that don't know, the aim of the game is to find the location of all the mines hidden in a grid. To start the game the user left clicks anywhere on the grid. This reveals the content of a few cells around that position. Content is either a mine or a count of the number of mines that touch the cell, zero being shown as a blank cell. Apart from those at the edge of the grid, each cell touches 8 other cells (up, down, left, right and four diagonals). The user left clicks, in turn, on the cells that he believes to be unmined. This left clicking reveals the contents of the cell. If the cell is unmined the touching mine count is shown. If the cell is mined the game is over and the user has failed. Success comes when all the unmined cells are revealed. Optionally the user can mark the cells that are thought to be mined. This is done using a right click and places a flag in the cell without revealing its contents.
As mentioned above, an important characteristic of Minestein, and one which separates it from the original Minesweeper, is that it produces puzzles that can be solved logically. To many this will be seen as a great advantage. If they get stumped users can resort to a hint system.
February 18th 2011
Latest changes described here.September 12th 2010
Changes to web pages. Reading through the text after a long break realised that I had denoted cell positions by row,column numbered down from the top left! Converted to column,row numbering from the bottom left to give the more conventional x,y. Never let the coder write the user documentation.December 8th 2008
Version 0.02 released: halved the time taken to generate puzzles that can be solved by logic - though it is still too slow for large grids with many mines.