public TurnResult Move(int newX, int newY) { var movementResult = IsLegalMove(newX, newY); if (movementResult.WasSuccessful) { if (movementResult.Flags.Contains(Flag.PawnPromotion)) { var queen = new Queen(PieceColor, ChessBoard) { HasMoved = true, XCoordinate = XCoordinate, YCoordinate = YCoordinate }; return(ChessBoard.MovePiece(XCoordinate, YCoordinate, newX, newY, queen)); } return(ChessBoard.MovePiece(XCoordinate, YCoordinate, newX, newY, this)); } else { return(new TurnResult() { TurnCompleted = false, OldXCoordinate = XCoordinate, OldYCoordinate = YCoordinate, NewXCoordinate = newX, NewYCoordinate = newY, PieceMoved = this, ReasonForIncompleteTurn = movementResult.ReasonForFailure }); } }
public TurnResult Move(int newX, int newY) { var movementResult = IsLegalMove(newX, newY); if (movementResult.WasSuccessful) { return(ChessBoard.MovePiece(XCoordinate, YCoordinate, newX, newY, this)); } else { return(new TurnResult() { TurnCompleted = false, OldXCoordinate = XCoordinate, OldYCoordinate = YCoordinate, NewXCoordinate = newX, NewYCoordinate = newY, PieceMoved = this, ReasonForIncompleteTurn = movementResult.ReasonForFailure }); } }