Beispiel #1
0
  public void modifyCell() {
    GridCell selectedCell = this.kenKenGrid.mSelectedCell;
    if (!this.kenKenGrid.mActive) return;
    if (selectedCell == null) return;

    if (modes[ERASER].isSelected()) {
      selectedCell.setSelectedCellColor(modeColours[ERASER]); // green
      if (selectedCell.isUserValueSet() || selectedCell.mPossibles.size() > 0) {
        saveUndo(selectedCell, false);
        selectedCell.clearUserValue();
      }
    } else {
      if (modes[INPUT].isSelected() && lastnum != 0) enterNumber(lastnum);
      if (modes[PEN].isSelected()) {
        selectedCell.setSelectedCellColor(modeColours[PEN]);
        if (selectedCell.mPossibles.size() == 1) {
          saveUndo(selectedCell, false);
          selectedCell.setUserValue(selectedCell.mPossibles.get(0));
          if (rmpencil) removePossibles(selectedCell);
        }
      } else {
        selectedCell.setSelectedCellColor(modeColours[PENCIL]);
        if (selectedCell.isUserValueSet()) {
          saveUndo(selectedCell, false);
          selectedCell.toggleUserValue();
        }
      }
    }
    this.kenKenGrid.requestFocus();
    this.kenKenGrid.invalidate();
  }
Beispiel #2
0
  /**
   * ************************* Helper functions to modify KenKen grid cells
   * *************************
   */
  public void enterNumber(int number) {
    GridCell selectedCell = this.kenKenGrid.mSelectedCell;
    if (!this.kenKenGrid.mActive) return;
    if (selectedCell == null) return;

    saveUndo(selectedCell, false);
    if (modes[PEN].isSelected()) {
      selectedCell.setUserValue(number);
      if (rmpencil) removePossibles(selectedCell);
    } else {
      if (selectedCell.isUserValueSet()) selectedCell.clearUserValue();
      selectedCell.togglePossible(number);
    }
    this.kenKenGrid.requestFocus();
    this.kenKenGrid.invalidate();
  }