private void checkKeyBoardTouch(int x, int y) {
    if (!board.isInKeyboard(x, y)) return;

    try {
      setValueToSelectedTile(board.touchedNumber(x));
    } catch (SudokuException e) {
      Log.e(Sudoiku.TAG, e.getMessage());
    }
  }
  private void checkGridTouch(int x, int y) {
    if (!board.isInGrid(x, y)) return;

    Pair touchedTile = null;
    try {
      touchedTile = board.touchedTile(x, y);
    } catch (SudokuException e) {
      Log.e(Sudoiku.TAG, e.getMessage());
      return;
    }
    sudokuModel.selectTile(touchedTile.a(), touchedTile.b());
  }
  private void checkButtonBoardTouch(int x, int y) {
    if (!board.isInButtonsBoard(x, y)) return;

    try {
      int button = board.touchedButton(x);
      if (button == Tile.NOTES_BUTTON) {
        if (sudokuModel.isNotesMode()) sudokuModel.setInNumbersMode();
        else sudokuModel.setInNotesMode();
      }
      if (button == Tile.ERASE_BUTTON) {
        if (sudokuModel.isNotesMode()) sudokuModel.resetNotes();
        else setValueToSelectedTile(0);
      }
    } catch (SudokuException e) {
      Log.e(Sudoiku.TAG, e.getMessage());
    }
  }