예제 #1
0
        private void Move(IFigure figure, Field field)
        {
            var move = new Move(figure, field);

            if (PossibleMoves.Any(x => x.IsMoveTheSame(move)))
            {
                figure.Move(field);
                Console.WriteLine("your move: " + field.Horizontal, field.Vertical);
            }
            else
            {
                Console.WriteLine("Illegal move");
            }
        }
예제 #2
0
        public void Move(Tuple <int, int> move)
        {
            var row    = move.Item1;
            var column = move.Item2;

            if (!PossibleMoves.Any(m => m.Item1 == row && m.Item2 == column))
            {
                throw new InvalidOperationException();
            }

            var pieceToTake = Board.GetPieceAtLocation(row, column);

            if (pieceToTake != null)
            {
                Board.Pieces.Remove(pieceToTake);
            }

            Row    = row;
            Column = column;

            PostMove();
        }
예제 #3
0
 public bool IsPossibleEndPosition(BoardPosition startPos, BoardPosition endPos)
 {
     return(PossibleMoves.Any(m => m.StartPosition == startPos && m.EndPosition == endPos));
 }
예제 #4
0
 public bool IsPossibleStartPosition(BoardPosition startPos)
 {
     return(PossibleMoves.Any(m => m.StartPosition == startPos));
 }