

                        MineSweeper v2.0

                       Author : Adam Lock

                 Copyright 1991 Amiga Computing

If you have any queries regarding this program then, the author
can be contacted by electronic mail the following address:

                     cmp9133@uk.ac.uea.sys

or by telephone on:

                         0634 660-246

Contents
========

This package of MineSweeper contains the following files:

   MineSweeper          - The executable
   MineSweeper.doc      - Documentation
   Sound/Fanfare        - Victory fx
   Sound/Explosion      - Failure fx

The sound fx files are optional extras to the execution of MineSweeper. 
If they are not present, you will be treated to silent explosions, but
you can always replace them with your own IFF 8SVX files if you so desire.

Diagram Notation
================

Throughout this documentation, certain concepts have been illustrated with
diagrams, which use the following symbols:

[41m [40m   Covered square

[41m[32m*[40m[31m   Covered square marked as containg a mine

[43m [40m   Uncovered square with no neighbours

[32m[43m1[31m[40m   Uncovered square which has 1 neighbour containing a mine

[32m[43m2[31m[40m   Uncovered square which has 2 neighbours containing a mine etc.

[32m[43m*[31m[40m   Uncovered square with a mine in it.


The Basic Idea
==============

MineSweeper is one of those silly little puzzle games that whiles away
the time, when you are bored.

You must remove all the tiles covering a grid without revealing any of
the mines which are underneath some of them and explode if uncovered.

Obviously this would be impossible to do, if it weren't for the fact that
if a square does not contain a mine, then it contains a number, which tells
you how many of its neighbours contain mines. Look at the following 
uncovered minefield:

[32m                            [43m 2**2*[40m
[32m                            [43m14*532[40m
[32m                            [43m*3*2*1[40m
[31m
The asterisks represent mines, and by inspection you can see that squares
numbered "2" have 2 mines next to them, "3" have 3 mines next to them and
so on. The maximum number of mines next to a square is 8, and the minimum
is 0, which are represented as blanks.
If a square contains a 0, then all connected squares are revealed too,
since it is impossible that they contain a mine (otherwise they would not
be labelled 0).

Let's look at a portion of a much larger minefield, in which some of the
squares have already been revealed:

[32m                              [43m 1[41m   [40m
[32m                              [43m 1[41m   [40m
[32m                              [43m 1111[41m[40m
[32m                              [43m     [41m[40m
[31m

From this you can see that the corner number is a 1, therefore, the square
to the top right of this must be a mine, since it is the only covered 
square left which touches it. Because revealing a mine will blow it up,
you must mark it by clicking on the right mouse button . 

                              [43m[32m 1[41m   [40m[31m
                              [43m[32m 1[41m*  [40m[31m
                              [43m[32m 1111[41m[40m[31m
                              [43m     [41m[40m

This means all the other 1s touching the marked square have been fulfilled,
because they are all neighbours, and so all other squares surrounding them
must be mine free, and so their tiles can be removed.

                              [43m[32m 12[41m  [40m[31m
                              [43m[32m 1[41m*[43m21[40m[31m  
                              [43m[32m 1111[40m[31m
                              [43m     [41m[40m

The process continues until all tiles containing mines have been marked
and all of the others have been removed.

  Try experimenting with the game, if you can't understand my vague
ramblings. 

MineSweeper Controls
====================

The mouse buttons do the following things:


Left Mouse Button  - Removes a tile from above a square. This will detonate
                     a mine if one lies underneath the tile.
Right Mouse Button - Marks a tile, as containing a mine, so that you don't
                     accidentaly remove it. Clicking again will unmark the
                     square.

The control panel has several gadgets which allow various game parameters
to be changed:

"Reset" - Aborts the current game, and resets the board for a new game
"Level" - Changes the difficulty level (ie number of mines) and resets
          the game.
"Size"  - Changes the size minefield and resets it.

This table shows the number of mines that are laid according to the grid 
size and difficulty level, which can be altered by the player.

               +-----------------------------------+
               |             Grid Size             |
  +------------+-----------------------------------+
  | Difficulty |   10x10       15x15      28x18    |
  +------------+-----------------------------------+
  | Easy       |   11 Mines    25 Mines   56 Mines |
  | Tricky     |   18 Mines    40 Mines   90 Mines |
  | Hard       |   24 Mines    60 Mines   123 Mines|
  +------------+-----------------------------------+

There is a clock which allows you time how long it takes to complete the
game. The clock starts when the first tile is removed, and stops when a
mine explodes, or when the field has been sucessfully cleared.

Also the total number of mines left in the grid is shown, and this goes
down or up as you mark or unmark squares as containing a mine. Of course
when all mines have been located, this will read 0.

Running MineSweeper
===================

From CLI - Just type in MineSweeper [return], and the program will 
execute. Your command line will be restored since MineSweeper runs
as a background task.

From WB - Just double-click on the associated icon to start
MineSweeper.


Quitting MineSweeper
====================

Using the standard Close Window gadget, will cause MineSweeper to exit.


MineSweeper Version History
===========================

v2.0       Major enhancements to the code of version 1.0 include:
           Variable size minefields.
           Cleaner code.
           Bug fix which involved the replacing SAS C random number 
           generator with my own because it was not turning out proper
           random numbers.

v1.0       MineSweeper, a popular Macintosh and PC TimeWaster is
           translated to the Amiga by moi after I noticed the lack of any
           other version.
