Beispiel #1
0
        /// <summary>
        ///   Undo move. For internal use only.
        /// </summary>
        private static void UndoMoveInternal()
        {
            if (MoveHistory.Count > 0)
            {
                Move moveUndo = MoveHistory.Last;
                PlayerToPlay.Clock.Revert();
                MoveRedoList.Add(moveUndo);
                Move.Undo(moveUndo);
                PlayerToPlay = PlayerToPlay.OpposingPlayer;
                if (MoveHistory.Count > 1)
                {
                    Move movePenultimate = MoveHistory[MoveHistory.Count - 2];
                    PlayerToPlay.Clock.TimeElapsed = movePenultimate.TimeStamp;
                }
                else
                {
                    PlayerToPlay.Clock.TimeElapsed = new TimeSpan(0);
                }

                if (!IsPaused)
                {
                    PlayerToPlay.Clock.Start();
                }
            }
        }