play(col, row, action = 'discover') {
    const cell = this.getCell(col, row);
    const value = cell[action]();
    if(action === 'flag') { return; }

    this.uncovered++;

    if(cell.hasBomb()) {
      throw 'Game Over';
    }

    if(cell.isEmpty()) {
      this.revealNumbers(col, row);
    }

    if(this.uncovered === (this.rows * this.columns - this.mines)) {
      throw 'You won!';
    }

    return value;
  }
@param col
@param row
@param action discover or flag
@returns {*}