예제 #1
0
        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);
        }
예제 #2
0
        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);
        }