Exemple #1
0
        private void btnUndo_Click(object sender, EventArgs e)
        {
            var lastAction = this.ActionLog.LastOrDefault();

            if (lastAction != null)
            {
                lastAction.Moves.ForEach(m => m.Piece.Location = m.Original_Location);
                lastAction.Removed_Pieces.ForEach(x => this.Pieces.Add(x));

                if (lastAction.Added_Piece != null)
                {
                    this.Pieces.Remove(lastAction.Added_Piece);
                }

                this.ActionLog.Remove(lastAction);
                Next_Turn(false);
                Board.Clear_EnabledMoves();
                this.Pieces.ForEach(p => p.Selected = false);
            }
        }