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(); }
/** * ************************* 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(); }