Пример #1
0
        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);
            }
        }
Пример #2
0
 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;
     }
 }
Пример #3
0
 public NumberChangedAction(SudokuNumber a_number)
 {
     m_number = a_number;
     m_states = (from num in a_number.Cell.Numbers()
                 select num.State).ToArray();
 }
Пример #4
0
 private void OnBoardChanged(SudokuNumber a_number)
 {
     Node.RemoveNodes();
     Recalculate();
 }