The data is all there. To create a new game create a new Minesweeper
class instance. To left click on a square, call
yourMinesweeperInstance.onLeftClick(Tile t), and for right click call
yourMinesweeperInstance.onRightClick(Tile t). Validity will be
determined when this is called, and any and all relevant tile states
will be updated. If the game is lost or won because of a click, that
will also be changed in the game state. Check the tiles states by
calling getMark() and checkOpen(). getMark will return a MarkState enum
of type MarkState.unmarked, MarkState.flagged, or MarkState.questioned.
checkOpen will return true if open or false if unopened (meaning it's
been left clicked on or recursively opened due to clicking on a
zero-neighboring-bomb-square). Game state can be checked by getState().
Display accordingly. :-)