/// <summary> /// Obtiene el movimiento para capturar una pieza /// </summary> private ActionViewMovement GetActionCapturePiece(ActionCaptureModel action) { Figure figure = SearchPiece(action.Type, action.Color, action.From); if (figure.Type != null) { return(new ActionViewMovement(ActionViewMovement.ActionType.Destroy, figure, 0, 0)); } else { return(null); } }
/// <summary> /// Elimina una pieza /// </summary> private void Capture(ActionCaptureModel action) { //? No comprueba Pieces[index].Piece porque en ocasiones me he encontrado //? que se ha leído otro tipo de pieza en la captura for (int index = Pieces.Count - 1; index >= 0; index--) { if (Pieces[index].Color == action.Color && Pieces[index].Cell.Row == action.From.Row && Pieces[index].Cell.Column == action.From.Column) { Pieces.RemoveAt(index); } } }
/// <summary> /// Obtiene el movimiento para deshacer la captura de una pieza /// </summary> private ActionViewMovement GetActionUndoCapturePiece(ActionCaptureModel action) { return(new ActionViewMovement(ActionViewMovement.ActionType.Create, CreateFigure(action.From.Row, action.From.Column, action.Color, action.Type), action.From.Row, action.From.Column)); }