Terminology - DavidNHill/Minesweeper GitHub Wiki
On this page I will try to explain the meaning of some terms used in this wiki
Living tile
A tile is considered to be living (or alive) if the tile is not yet revealed and can have more than one possible value (not including being a mine). When a game starts all the tiles are living. As a game progresses some tiles, even though they are not yet revealed, become non-living.
There is no point to clicking on a non-living tile since you will either lose (it's a mine) or reveal the one possible value the tile could be. In either case the knowledge about the game is not increased.
If the game has no living tiles left then the odds of winning the game are 1-in-X where X is the number of candidate solutions.
Candidate solutions
A candidate solution is a solution which satisfies all the revealed tiles and uses all the mines in the game. One and only one of the candidate solutions will be the actual solution to the game. If the number of candidate solutions is reduced to 1 then we have the solution to the game.
All the candidate solutions are discovered by the Brute force processing.
Coding details
If there are n unrevealed tiles in the game then a Candidate solutions is held as a byte[n] array where each value in the array is either mine or the value that tile must have for this candidate solution.
For x candidate solutions they are stored as a byte[x][n] array.
Node
In the context of the Brute force analysis processing a node is a possible future position the board could have. If I consider clicking on a tile which can have a value of either a '2' or a '3', then this represents two future game positions only one of which can be true. But both have to be considered.