To:ealehman
cc:
Subject:xmines
--------

I don't see anything off hand that could have a bomb or be safe for sure,
and yet the program would miss, but I see some problems, especially with
order of inference:

Suppose you have the following:
______________
!1 1 2 1
!

Now your program would have to choose what it did first, so I assme it goes
left to right:
_____________
!1 1 2 1
!*   * *

If it went top to bottom then left to right, it would be
_________
!1 1 2 1*
!*     <MAJOR CONTRADICTION>
What I mean by that is by the time it tries the one under the last one, 
it can't be set (or it violates the 1) and it can't be safe (or it violates
the 2)


The following two are the only other possibilities (other than the first one):
_________
!1 1 2 1*
!  *

__________
!1 1 2 1
!  *   *


What you probably want is something that will keep track of a decision tree,
and every time you don't have a sure answer you make a guess (in your method,
assume bomb).  When you get a major contradiction, you must modify your last
guess.

Now you don't need to stop when you find a consistent solution.  You can
find ALL consistent solutions and take the & and | of them all to find
the sure bombs and the sure safe spots.  That would work for sure.

If you just stop at your first one, you will definitely get the sure ones,
but mixed with the not-so-good-ones.

Besides, with the whole table of possibilities, you can determine
probabilities.


