Generate fun minesweeper games
Idea and explanation
Generate minesweeper games, automatically solve then, score them
based on fun-ness, show user the game with the highest score.
Fun-ness score is high for moves that require multiple pieces of
information. Score is negative for games that require guessing
Marking neighbors around a "1" block with a flagged mine uses 1
block of information. 1-blocks are not fun and give no score. A
move that requires information about two numbered blocks and
their neighbors uses 2 blocks of information and give 1
score. 3-blocks give 2 score each. Moves requiring >3 blocks
or knowledge about the number of mines left give 3 score each.
To score games in a consistent fashion, we start games with the
largest area of "0" blocks uncovered.
Try some high-scoring games I found:
- Left-click digs for a mine.
- Right-click toggle flag.
- Middle-click/double-left-click on number auto-digs if
- Right-click on number toggles that block to
- ⟳ restarts current game.
Top-right icons change behavior of left-click.
- Arrows move highlighter around.
- 'd' digs for a mine.
- 'f' toggle flag.
- 'd' on number auto-digs if easy.
- 's' toggles that block to auto-solver.
- 'r' restart current game.
- '1' auto-solve 1-blocks.
- '2' auto-solve 2-blocks.
- '3' auto-solve 3-blocks.
- '4' auto-solve all numbered blocks and neighbors (max 25).
- '5' auto-solve all blocks (max 25).
- width/height: size of minesweeper game.
- mines: number of mines to place.
- blocks: number of blocks to place.
- iterations: number of games to generate when searching for
the best score.
- seed: number to generate a consistent game. Copy-pasting a
seed url is easier.
- board width/board height: size of the minesweeper game area
- maximize: how to calculate score
- verbose: show list of all generated games.
- generate: start generating games.
- stop: stop generating and use the best one so far.