Ejemplo n.º 1
0
        public void OnClickDoAction(GameObject obj)
        {
            Debug.Log(string.Format("OnClick DoAction : {0}", obj.name));
            if (obj.name == "Undo")
            {
                if (_doCtrl.GetUndoStackCount() <= 0)
                {
                    return;
                }
                model.DoAction peek = _doCtrl.UndoPop();
                OnClickCell(peek.boardCoordinate.column, peek.boardCoordinate.row);
                model.DoAction redo = peek.SwapDoAction();
                _doCtrl.RedoPush(redo);
                _modelBoard.InputNumber(redo.current.isMemoMode, redo.current.number, redo.current.memoArray, null);
            }
            else if (obj.name == "Redo")
            {
                if (_doCtrl.GetRedoStackCount() <= 0)
                {
                    return;
                }

                model.DoAction peek = _doCtrl.RedoPop();
                OnClickCell(peek.boardCoordinate.column, peek.boardCoordinate.row);
                model.DoAction undo = peek.SwapDoAction();
                _doCtrl.UndoPush(undo);
                _modelBoard.InputNumber(undo.current.isMemoMode, undo.current.number, undo.current.memoArray, null);
            }
            UpdateView();
        }
Ejemplo n.º 2
0
        public void UndoStackPush(model.BoardCoordinate boardCoordinate, int previusNumber, int currentNumber, bool isPreviusMemo, bool isCurrentMemo, int[] previusMemo, int[] currentMemo)
        {
            model.Do previus = new model.Do(previusNumber, isPreviusMemo, previusMemo);
            model.Do current = new model.Do(currentNumber, isCurrentMemo, currentMemo);

            model.DoAction undo = new model.DoAction(boardCoordinate, previus, current);
            _doCtrl.UndoPush(undo);
        }
Ejemplo n.º 3
0
        public DoAction SwapDoAction()
        {
            int[] previusMemoArr = new int[this.previus.memoArray.Length];
            int[] currentMemoArr = new int[this.current.memoArray.Length];
            System.Array.Copy(this.previus.memoArray, previusMemoArr, this.previus.memoArray.Length);
            System.Array.Copy(this.current.memoArray, currentMemoArr, this.current.memoArray.Length);

            model.Do previus = new model.Do(this.previus.number, this.previus.isMemoMode, previusMemoArr);
            model.Do current = new model.Do(this.current.number, this.current.isMemoMode, currentMemoArr);

            model.DoAction doAction = new model.DoAction(this.boardCoordinate, current, previus);

            return(doAction);
        }
Ejemplo n.º 4
0
 public void RedoPush(model.DoAction redo)
 {
     Debug.Log(string.Format("RedoStackCount : {0}", _redoStack.Count));
     _redoStack.Push(redo);
 }
Ejemplo n.º 5
0
 public void UndoPush(model.DoAction undo)
 {
     _undoStack.Push(undo);
     Debug.Log(string.Format("UndoStackCount : {0}", _undoStack.Count));
 }