Mines.txt	The Mines Game 				May 08, 2018

Author:  Charles E. Campbell  <NcampObell@SdrPchip.AorgM-NOSPAM>
	  (remove NOSPAM from the email address first)
Copyright: (c) 2004-2013 by Charles E. Campbell		mines-copyright
           The VIM LICENSE applies to Mines.vim and Mines.txt
           (see copyright) except use "Mines" instead of "Vim"
	   No warranty, express or implied.  Use At-Your-Own-Risk.

=============================================================================
1. Mines:						mines

Mines is a Vim plugin, but you may source it in on demand if you wish.
You'll need <Mines.vim> and <Rndm.vim> - the latter file is available
as "Rndm" at the following website:

    http://www.drchip.org/astronaut/vim/index.html#VimFuncs


STARTING

    Games:						mines-start
        \mfc : clear statistics (when a game is not showing)
        \mfe : play an easy mines game
        \mfm : play a  medium-difficulty mines game
        \mfh : play a  high-difficulty mines game
        \mfr : restore a game

The Mines plugin has been set up so that the upper left hand corner will
always be a safe (ie. no mine) location.  This feature prevents a lot of
false starts.

Note that using the \mf_ maps will save the files showing in all windows and
save your session.  Although I've used the backslash in the maps as shown here,
actually they use <Leader> so you may customize your maps as usual (see
mapleader for more about <Leader>).


USE AT YOUR OWN RISK

Mines.vim is a use-at-your-own-risk game.  However, an effort has been made
to preserve your files.  The game does a "windo w" and uses mksession to both
save your working files that are showing in your windows and to preserve your
window layout for subsequent restoration.


OBJECTIVE

The objective of the game is to flag all mines and to reveal all safe
squares.  As soon as you click a <leftmouse> or x, the square under the cursor
is revealed with either a count of the number of bombs around it or as a BOOM!
Of course, to use a mouse means your vim must support using the mouse.  Gvim
usually does; console vim may or may not depending on your supporting
terminal (see 'mouse').

Statistics are stored in <$HOME/.vimMines>.  You need to have a $HOME
environment variable set up properly for statistics to be kept.

If you win, Minnie will do a cartwheel for you!


GAME INTERFACE

On many terminals, all you need to do is to click with the left mouse (to see
what's there, or maybe to go BOOM!) or to click with the rightmouse to flag
what you think is a mine.

     -Play-						mines-play
        x  move the cursor around the field;
           pressing x is just like pressing a
           <leftmouse> -- find out what's
           hidden!
        f  just like the <rightmouse>, flag what's under the cursor as a mine
        0  goes to leftmost  position inside minefield
        $  goes to rightmost position inside minefield
        gg goes to uppermost position inside minefield
        G  goes to bttommost position inside minefield



     -Control-						mines-control
        C   clear statistics (only while a game is showing)
        s   suspend the game, restore the display
            and session  (\mfr will subsequently
            restore the game)

        q   quit the game, restore the display

     -New Games-					mines-newgame
        E   starts up a new easy game
            (only while an old game is showing)

        M   starts up a new medium game
            (only while an old game is showing)

        H   starts up a new hard game
            (only while an old game is showing)


=============================================================================
3. Hints:						mines-hints

My own win rate with Mines is about 73%, so don't expect a sure fire
way-to-win!  However, here are some hints.  If you don't want to see them,
close your eyes...

	1-9 qty of bombs in vicinity
	#   any number
	o   any number or blank (no bomb) space
	?   unknown
	f   flag the space
	x   find out what's in the space

	 Pattern         Can Safely Do         Pattern         Can Safely Do
	 ooooo             ooooo
	 oo3oo             oo3oo                oooo              oooo
	                    fff                 111o              111o
                                                                    x

	+-----             +-----
	|ooo               |ooo                 oooo              oooo
	|22o..             |22o..               122o              122o
	|??                |ffx                                     f


	 ooooo            ooooo
	 #121#            #121#
                           fxf


=============================================================================
2. History:						mines-history {{{1

   21 : 07/13/15   * Changed %d to %d _ (uses black hole register)
		   * included some minefield analysis support (B)
		   * now reports on amazing winning streaks
   20 : 03/20/13   * Added some extra congratulations when the best time is
		     achieved.
   19 : 05/10/11   * "NearbyFlags" field implemented
	11/02/12   * protected a :windo call by preceding it with
		     :noautocmd
	11/28/12   * Changed nmaps to nnoremaps
   18 : 04/27/10   * the "norm" associated with flipping a flagged square back
		     to normal has been changed to "norm!".  No other plain
		     "norm"s are in Mines.vim.
	08/12/10   * Mines now saves&sets&restores options using local
		     variants, and noswf is used during Mines.
	12/20/10   * Implemented autoload'ing for Mines so that it takes
		     little time during startup
	03/07/11   * Found a bug where pressing "f" wouldn't restore a square
		     to "unknown" when it should (solution: needed to safe the
		     'et' setting)
	03/08/11   * Released to vim.sf.net
   17 : 04/08/08   * pressing "x" when atop an "f" now is a no-op; one must
		     use an "f" to clear an "f".
	11/29/08   * attempting to modify a completed minefield no longer
		     produces not-modifiable error messages.
	05/20/09   * cecutil bug fix
	07/30/09   * fixed a bug where part of the minefield would disappear
		     when virtualedit was off (I usually use :set ve=all).
   16 : 01/24/07   * on wins, percentage won now shown to 3 decimal places
		   * works with Rndm.vim to save seeds in $HOME/.seed to
		     improve pseudo-random nature of games
   15 : 06/28/06   * now includes cecutil.vim as part of its distribution
		   * when game is over, if -Mines- exists, it will be deleted
		   * "Flags Used" field was misplaced for Medium and Hard
		     games; fixed.
		   * a "redr!" for debugging was inadvertently left in,
		     causing flickering floods.  Fixed.
	08/10/06   * included "Time Used" field during play
	12/28/06   * at end-of-game, when one hits a mine, mistakenly flagged
		     squares are shown with truth with blue background
   14 : 06/26/06   * added "Flags Used" field while playing
	06/16/06   * pressing "c" changes corner
		   * pressing 0  goes to leftmost  position inside minefield
		   * pressing $  goes to rightmost position inside minefield
		   * pressing gg goes to uppermost position inside minefield
		   * pressing G  goes to bttommost position inside minefield
	05/16/06   * medium is now 15% mines, hard is 18% mines
		   * medium now uses an 18x18 grid
   13 : 01/06/06 : * the percentage wins is now shown to tenths
	12/28/05   * now uses cecutil to save/restore user maps
   12 : 05/23/05   * Mines will issue a message that Rndm is missing
		     (and where to get it) when Rndm is missing
	01/05/06   * Mines' win message now includes percentage of wins
   11 : 08/02/04 : * an X will now mark the bomb that went off
		   * bugfix: an "f" on a previously determined site
		     (whether numbered or blank) will now have no effect
		   * flipped the cterm=NONE and fg/bg specs about; some
		     machines were showing all bold which equated to one
		     color.
   10 : 07/28/04 : * updatetime now 200ms, affects time-left display when
		     g:mines_timer is true.  Restored after game finished.
		   * longest winning/losing streaks now computed&displayed
		   * statistics now kept separately for each field size
		   * now includes a title
		   * CursorHold used to fix highlighting after a
		     colorscheme change
    9 : 06/28/04 : * Mines now handles light as well as dark backgrounds
    8 : 06/15/04 : * improved look of Minnie at the end
		   * total/streak win/loss statistics
    7 : 12/08/03 : changed a norm to norm! to avoid <c-y> mapping
    6 : 10/16/03 : includes help
    5 : 05/08/03 : adjusted Med/Hard to be 20% mines
    4 : 02/03/03 : \mft toggles g:mines_timer
		   colons lined up for Happy()
		   multiple x hits after a Minnie repeated Minnie - fixed
		   saves/restores gdefault (turns it to nogd during game)
    3 : 02/03/03 : map restoration was done too early, now fixed
		   \mfr didn't always set ts to 1; fixed
		   included E M H maps for easily starting new games
		   escape() now used on s:restoremap prior to execution
		   g:mines_timer  (by default enabled) if true applies
		   time-limit
    2 : 01/31/03 : now intercepts attempts to restore a quit game
		   quit games' s:minebufnum is now unlet

=============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker