v.1 Allows a user to enter any board parameters, and plays once until it gets stuck or clears v.2 Runs given parameters automatically. Outputs statistical analysis v.3 Eliminated border v.4 Resets board and finds another starting position if it gets stuck v.5 Implemented the first two rules of R4 (almost worthless?) v.6 Accepts user input (toggle), border becomes a toggle, R4 bug fixed, R4 toggled. R4 only works with border v.7 Hidden turned off but bombs are not displayed, only their status. (Radical Mode) R4 is disabled, and obviously unnecessary in Radical mode. Added "mines left" counter. Added SHOW_MISS toggle, which displays the board when a failure is encountered. R4 enabled again, but very unreliable. v.8 Matrix support, and use it to lead off. Added SHOW_MATRIX to see matrix when complete, and SHOW_MATRIX_STEPS toggle to watch each row-refine step in action. Added a 'verify' to check if all data in Matrix is kosher. Matrix function now modifies board to provide solutions. Added SHOW_MATRIX_COMMANDS toggle to define showing each command line that affects matrix. Added repeat_revival and tweaked nextmove(), to prevent an infinite loop with zero progress v.9 Matrix uses fractions instead of doubles. Not working right. v.8B (child of v.8) Including FORCE_MATRIX option, to allow user to bypass normal logic and go straight to using the matrix. v.10 (child of v.8B) New GUESSNCHECK algorithm- searches for all-zero rows (0=0), changes the pivot element to 1, and the final element to either 1 or 0. Only requires 2*numrows checks, and usually only affects the last few rows. V.11 (child of v.8B) USE_MR4 toggle. When combined with the if-statement that denies adding all-zero rows to other rows, MR4 can check for solved rows and use them for a partial solution. Actually, this won't work, because it's possible for x=0, but truly be mined (because of faulty matrix data elsewhere) v.12 (child of V.11) (FUTURE) Uses new possibly non-deterministic(?!) method: for boards larger than 3x3, partition off topleft 3x3, and suppose the seven tiles surrounding it either contain mines or don't. Determine if 3x3 box affected by outside tiles is legal, and then try to find a match for it in the 480 (512) combinations of 3x3 statuses.