public IChessPiece GetAPieceFromPosition(string positionString) { Position positon = new Position(positionString); IChessPiece chessPieceSearched = ChessPiecesOnBoard.Where(cp => cp.Position.ColumnPosition == positon.ColumnPosition && cp.Position.RowPosition == positon.RowPosition) .FirstOrDefault(); return(chessPieceSearched); }
public bool MoveAPiece(string startingPositionString, string finalPositionString) { if (!IsWithinBoundaries(startingPositionString) || !IsWithinBoundaries(finalPositionString)) { return(false); } Position finalPosition = new Position(finalPositionString); IChessPiece chessPieceMoved = GetAPieceFromPosition(startingPositionString); bool wasPieceMoved = chessPieceMoved.Move(finalPosition.ColumnPosition, finalPosition.RowPosition, ChessPiecesOnBoard); if (wasPieceMoved) { ChessPiecesOnBoard.RemoveAll(cp => cp.Position.ColumnPosition == finalPosition.ColumnPosition && cp.Position.RowPosition == finalPosition.RowPosition && cp != chessPieceMoved); return(true); } return(false); }