protected override void OnMouseDown(MouseEventArgs a_e) { base.OnMouseDown(a_e); if (!Enabled) { return; } SudokuNumber number = NumberFromPoint(a_e.Location); if (number == null) { return; } if (number.Cell.IsSolved) { return; } if ((number.State == SudokuNumberState.sudokucellstatePossible) || (number.State == SudokuNumberState.sudokucellstateImpossible)) { NumberChangedAction action = new NumberChangedAction(number); UndoRedoManager.Instance.SaveAndExecute(action); } }
public void SetNumber(int x, int y, int Num, NumberType Type = NumberType.InsertByUser) { if (matrice[x, y] == null) { matrice[x, y] = new SudokuNumber(Num, Type); } else { matrice[x, y].n = Num; matrice[x, y].Type = Type; } }
public NumberChangedAction(SudokuNumber a_number) { m_number = a_number; m_states = (from num in a_number.Cell.Numbers() select num.State).ToArray(); }
private void OnBoardChanged(SudokuNumber a_number) { Node.RemoveNodes(); Recalculate(); }